数据库插入一个对象时,弹出了这个。
一开始以为 SQL 语句写的不对,就把老师的源码也搬过来试,还是一样。
这样就可以确定不是语句的问题,下面继续排查:
这里的问题是:
1: cmd对象没有绑定 conn对象。
2:cmd对象虽然绑定了 param对象,但还是缺 conn对象
3: cmd对象虽然绑定了 conn对象,但是把 param对象给扔掉了。
总结: cmd对象 需要 conn对象和 param对象。
cmd是SQL语句,conn是数据库连接语句, param是SQL语句的参数。
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ToString());
SqlCommand cmd = new SqlCommand(sql, conn);
if (param != null)
{
cmd.Parameters.AddRange(param);
}
try
{
conn.Open();
return cmd.ExecuteNonQuery();//非查询方法
}
catch (Exception ex)
{
//可以在这个地方捕获ex对象相关信息,
//然后 MessageBox.Show(ex.Message);//...
throw new Exception("执行 public static int Update(string sql)发生异常:" + ex.Message);
}
finally
{
conn.Close();
}
问题已经找到,就是 param对象没有加载,问题的答案不是最重要的,重要的是解题思路。虽然网上垃圾资料很多,但有一份正确的参考资料还是很重要的。