con = new SqlConnection (cs);
SqlCommand UpdateCommand = new SqlCommand("Update Stock Set ConfigID = @ConfigID , Quantity = @Quantity ,TotalPrice =@TotalPrice, StockDate =@StockDate ,Where StockID='" +txtStockID.Text+"'");
UpdateCommand.Parameters.Add("@ConfigID",SqlDbType.Int).Value= txtConfigID.Text;
UpdateCommand.Parameters.Add("@Quantity", SqlDbType.Int).Value = txtQty.Text;
UpdateCommand.Parameters.Add("@TotalPrice", SqlDbType.Int).Value = txtTotalPrice.Text;
UpdateCommand.Parameters.Add("@StockDate", SqlDbType.NVarChar, 50).Value = dtpStockDate.Value;
con.Open();
UpdateCommand.ExecuteNonQuery();
con.Close();
答案 0 :(得分:2)
我觉得这个错误信息可以理解,不是吗?但是,您必须使用构造函数或属性SqlCommand
将连接分配给Connection
:
string updateSQL = @"UPDATE Stock Set ConfigID = @ConfigID,
Quantity = @Quantity,
TotalPrice = @TotalPrice,
StockDate = @StockDate
WHERE StockID = @StockID";
SqlCommand UpdateCommand = new SqlCommand(updateSQL, con);
或
SqlCommand UpdateCommand = new SqlCommand(updateSQL);
UpdateCommand.Connection = con;
StockID
中添加了Where
的参数,并删除了Where
之前的最后一个逗号。 另请注意,您应该在完成后关闭连接,因此您可以使用using
- 语句,以确保即使出错也会处理/关闭:
using(var con = new SqlConnection (cs))
{
// ...
}
答案 1 :(得分:0)
如何解决“ExecuteNonQuery:连接属性尚未初始化?”的错误?
初始化Connection
属性
UpdateCommand.Connection = con;
UpdateCommand.ExecuteNonQuery();
此外,您应该使用 using statement 包装连接对象,以确保它已正确处理。
答案 2 :(得分:0)
您也可以使用该连接创建命令:
var command = connection.CreateCommand();
这可确保您使用正确的连接初始化命令。您可以使用属性command.CommandText
设置查询字符串:
command.CommandText = @"SELECT foo FROM foo";