这个问题可能已经被问过很多次了,但我仍在努力。我从数据库中加载数据,如下所示:
private void loadProduct()
{
SqlConnection conn = null ;
try
{
using (conn = new SqlConnection(myGlobals.connString))
{
conn.Open();
dsProduct = new DataSet();
using (SqlCommand cmd = new SqlCommand("getProduct", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@productId", productId);
daProduct = new SqlDataAdapter(cmd);
daProduct.Fill(dsProduct, "product");
daProduct.UpdateCommand = cmd;
}
conn.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Data loading error!..."
+ Environment.NewLine
+ ex.ToString());
}
finally
{
conn.Dispose();
//cmd.Dispose();
//adapter.Dispose();
}
}
我的getProduct存储过程如下:
...
CREATE PROCEDURE [dbo].[getProduct]
@productId int
AS
BEGIN
SET NOCOUNT ON;
SELECT * from product WHERE (product.productId = @productId)
END
ProductId是表的主键。
现在我想使用adapter.Update(table)更新数据库
private void btnSave_Click_1(object sender, EventArgs e)
{
try
{
using (SqlConnection conn = new SqlConnection(myGlobals.connString))
{
conn.Open();
SqlCommandBuilder cbProduct = new SqlCommandBuilder(daProduct);
bsProduct.EndEdit();
daProduct.UpdateCommand.Connection = conn;
int rows = daProduct.Update(dsProduct, "product");
MessageBox.Show(rows.ToString() + " Updated Successfully");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
更新功能有效并显示:1成功更新 但是实际上数据库永远不会更新。 我的代码有什么问题?