使用ASP.NET MVC更新数据库

敦古延

我的数据库中有一个表,如下所示:

Create table Employee
(
  Id int Primary Key Identity(1,1),
  Name nvarchar(50),
  Gender nvarchar(10),
  City nvarchar(50),
  Salary decimal(18,2),
  DateOfBirth DateTime
)
GO
-- Insert some test data into Employee table
Insert into Employee values('Pranaya','Male','Mumbai',4000,'02/03/1977')
Insert into Employee values('Anurag','Male','Hyderabad',5000,'04/06/1979')
Insert into Employee values('Priyanka','Female','Bangalore',1000,'01/05/1979')
Insert into Employee values('Subrat','Male','Hyderabad',2000,'03/07/1981')
Insert into Employee values('Sudhanshu','Male','Mumbai',3000,'02/04/1978')
Insert into Employee values('Preety','Female','Bangalore',4000,'02/03/1974')
Insert into Employee values('Sandeep','Male','Hyderabad',5000,'04/06/1972')
Insert into Employee values('Sambit','Male','Bangalore',6000,'07/05/1975')
Insert into Employee values('Hina','Female','Mumbai',3000,'09/08/1976')
GO

然后我创建一个存储过程来更新员工

Create procedure spUpdateEmployee      
  @Id int,
  @Name nvarchar(50),      
  @Gender nvarchar (10),      
  @City nvarchar (50), 
  @Salary decimal(18,2),     
  @DateOfBirth DateTime 
as      
Begin      
  Update Employee Set
    Name = @Name,
    Gender = @Gender,
    City = @City,
    Salary = @Salary,
    DateOfBirth = @DateOfBirth
  Where   Id = @Id
End

我创建模范员工

 public class employee
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Gender { get; set; }
        public string City { get; set; }
        public decimal Salary { get; set; }
        public DateTime DateOfBirth { get; set; }
    }

我创建类EmployeeBusinessLayer包含方法updateEmployee

public class EmployeeBusinessLayer
{
public void UpdateEmployee(employee e)
        {
            string connectionStrings = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
            using (SqlConnection con =new SqlConnection(connectionStrings))
            {
                SqlCommand cmd = new SqlCommand("spUpdateEmployee", con);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter paId = new SqlParameter();
                paId.ParameterName = "@Id";
                paId.Value = e.ID;
                cmd.Parameters.Add(paId);

                SqlParameter paName= new SqlParameter();
                paId.ParameterName = "@Name";
                paId.Value = e.Name;
                cmd.Parameters.Add(paName);

                SqlParameter paGender = new SqlParameter();
                paId.ParameterName = "@Gender";
                paId.Value = e.Gender;
                cmd.Parameters.Add(paGender);

                SqlParameter paCity = new SqlParameter();
                paId.ParameterName = "@City";
                paId.Value = e.City;
                cmd.Parameters.Add(paCity);

                SqlParameter paSalary = new SqlParameter();
                paId.ParameterName = "@Salary";
                paId.Value = e.Salary;
                cmd.Parameters.Add(paSalary);

                SqlParameter paDate = new SqlParameter();
                paId.ParameterName = "@DateOfBirth";
                paId.Value = e.DateOfBirth;
                cmd.Parameters.Add(paDate);
                con.Open();
                cmd.ExecuteNonQuery();
            }

        }
}

我相信以上都是正确的。当我在EmployeeController中创建Edit操作时

[HttpGet]
        public ActionResult Edit(int id)
        {
            EmployeeBusinessLayer ebl = new EmployeeBusinessLayer();
            employee e = ebl.GetAllEmployess().FirstOrDefault(emp => emp.ID == id);
            return View(e);
        }



        [HttpPost]
        public ActionResult Edit(employee employee)
        {
            if (ModelState.IsValid)
            {
                EmployeeBusinessLayer employeeBusinessLayer = new EmployeeBusinessLayer();
                employeeBusinessLayer.UpdateEmployee(employee);
                return RedirectToAction("Index");
            }
            return View(employee);
        }

然后我从页面得到错误:过程或函数'spUpdateEmployee'期望未提供参数'@Id'。

我只是通过主要内容来说明我的问题,其余的我都可以肯定。能告诉我任何解决该错误的解决方案吗?我使用了Visual Studio 2019。

里沙卜·纳格帕尔

您可以按如下所示修改EmployeeBusinessLayer类中的UpdateEmployee方法

public class EmployeeBusinessLayer
{
public void UpdateEmployee(employee e)
        {
            string connectionStrings = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
            using (SqlConnection con =new SqlConnection(connectionStrings))
            {
                SqlCommand cmd = new SqlCommand("spUpdateEmployee", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@Id", e.ID);
                cmd.Parameters.AddWithValue("@Name", e.Name);
                cmd.Parameters.AddWithValue("@Gender", e.Gender);
                cmd.Parameters.AddWithValue("@City", e.City);
                cmd.Parameters.AddWithValue("@Salary", e.Salary);
                cmd.Parameters.AddWithValue("@DateOfBirth", e.DateOfBirth);
                con.Open();
                cmd.ExecuteNonQuery();
            }
        }
}

我对堆栈溢出的第一个答案。希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript或ajax使用asp.net mvc更新数据库?

来自分类Dev

完整日历ASP.NET MVC更新数据库事件

来自分类Dev

如何在ASP.NET MVC 5 Razor数据库中更新表

来自分类Dev

编辑操作不会更新数据库详细信息 ASP.NET MVC

来自分类Dev

如何在ASP.NET MVC 4中使用ViewModel(IEnumerable)更新我的数据库

来自分类Dev

ASP Net MVC Oracle数据库无法检索数据

来自分类Dev

ASP.NET MVC身份数据库

来自分类Dev

ASP.NET MVC 4数据库实体错误

来自分类Dev

没有数据库的ASP.NET MVC

来自分类Dev

无需数据库的ASP.NET MVC 4模型

来自分类Dev

在ASP.NET MVC上从数据库显示项目

来自分类Dev

ASP.NET MVC数据库无法访问

来自分类Dev

在ASP.Net MVC中管理数据库连接

来自分类Dev

打开与本地数据库 asp.net MVC 的连接

来自分类Dev

如何使用ASP.NET MVC将数据从数据库导出到Excel工作表?

来自分类Dev

ASP.NET MVC使用数据库表跨多个向导步骤持久保存数据

来自分类Dev

使用重命名的数据库表进行 ASP.NET MVC Code First 数据迁移

来自分类Dev

如何使用asp.net mvc检查数据库中是否存在重复数据

来自分类Dev

ASP.NET dotnet -ef数据库更新

来自分类Dev

ASP.NET:无法更新从数据库读取的值

来自分类Dev

无法更新访问数据库抛出asp.net

来自分类Dev

如何使用ASP.NET MVC将使用GrapeJS汇编的页面保存到数据库

来自分类Dev

在asp.net mvc4中每天00:00更新数据库的最佳方法是什么

来自分类Dev

ASP.Net MVC和状态-如何通过双列表框中的Session更改来更新数据库?

来自分类Dev

在asp.net mvc4中每天00:00更新数据库的最佳方法是什么

来自分类Dev

ASP.Net MVC和状态-如何通过双列表框中的Session更改来更新数据库?

来自分类Dev

在ASP.NET MVC 5中使用视图模型或数据库模型

来自分类Dev

使用ASP.NET MVC 4 + Entity Framework将图像保存到数据库

来自分类Dev

如何在asp.net mvc中使用Linq从数据库中删除多个记录

Related 相关文章

  1. 1

    javascript或ajax使用asp.net mvc更新数据库?

  2. 2

    完整日历ASP.NET MVC更新数据库事件

  3. 3

    如何在ASP.NET MVC 5 Razor数据库中更新表

  4. 4

    编辑操作不会更新数据库详细信息 ASP.NET MVC

  5. 5

    如何在ASP.NET MVC 4中使用ViewModel(IEnumerable)更新我的数据库

  6. 6

    ASP Net MVC Oracle数据库无法检索数据

  7. 7

    ASP.NET MVC身份数据库

  8. 8

    ASP.NET MVC 4数据库实体错误

  9. 9

    没有数据库的ASP.NET MVC

  10. 10

    无需数据库的ASP.NET MVC 4模型

  11. 11

    在ASP.NET MVC上从数据库显示项目

  12. 12

    ASP.NET MVC数据库无法访问

  13. 13

    在ASP.Net MVC中管理数据库连接

  14. 14

    打开与本地数据库 asp.net MVC 的连接

  15. 15

    如何使用ASP.NET MVC将数据从数据库导出到Excel工作表?

  16. 16

    ASP.NET MVC使用数据库表跨多个向导步骤持久保存数据

  17. 17

    使用重命名的数据库表进行 ASP.NET MVC Code First 数据迁移

  18. 18

    如何使用asp.net mvc检查数据库中是否存在重复数据

  19. 19

    ASP.NET dotnet -ef数据库更新

  20. 20

    ASP.NET:无法更新从数据库读取的值

  21. 21

    无法更新访问数据库抛出asp.net

  22. 22

    如何使用ASP.NET MVC将使用GrapeJS汇编的页面保存到数据库

  23. 23

    在asp.net mvc4中每天00:00更新数据库的最佳方法是什么

  24. 24

    ASP.Net MVC和状态-如何通过双列表框中的Session更改来更新数据库?

  25. 25

    在asp.net mvc4中每天00:00更新数据库的最佳方法是什么

  26. 26

    ASP.Net MVC和状态-如何通过双列表框中的Session更改来更新数据库?

  27. 27

    在ASP.NET MVC 5中使用视图模型或数据库模型

  28. 28

    使用ASP.NET MVC 4 + Entity Framework将图像保存到数据库

  29. 29

    如何在asp.net mvc中使用Linq从数据库中删除多个记录

热门标签

归档