【发布时间】:2016-09-16 16:30:07
【问题描述】:
我想更新详细信息。我在数据访问类中有代码。但是在执行ExecuteScalar()之后,它会进入catch块并显示异常为null。
程序:
public bool UpdateData(Customer objcust) // passing model class object because it contains all customer properties.
{
SqlConnection con = null;
// string result = "";
//int rows = 0;
try
{
string connectionString = @"server=(local)\SQLExpress;database=CustDemo;integrated Security=SSPI;";
con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("UPDATE Customer SET Name = @Name , Address = @Address, Gender =@Gender , City=@City WHERE Customer.CustomerID = @CustomerID",con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Name", objcust.Name);
cmd.Parameters.AddWithValue("@Gender", objcust.Gender);
cmd.Parameters.AddWithValue("@Address", objcust.Address);
cmd.Parameters.AddWithValue("@City", objcust.City);
con.Open();
cmd.ExecuteScalar();
return true;
}
catch(Exception ex)
{
return false;
}
}
【问题讨论】:
-
您没有传递客户 ID 参数。请检查,它是空的。
-
您分配给参数的任何值都可以为空吗?
-
我不认为它可以为空,如果它是她无法更新的表中不存在的值! @GuidoG
-
您应该阅读上面的@AT-2016 评论,我认为这是您问题的正确答案
标签: c# asp.net-mvc ado.net