【问题标题】:Error in ado.net crud operationsado.net crud 操作中的错误
【发布时间】: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


【解决方案1】:

而不是cmd.ExecuteScalar();尝试使用

cmd.ExecuteNonQuery (); 

ExecuteNonQuery 专门用于执行 UPDATE、INSERT 或 DELETE 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多