C# Winforms обновляет базу данных, когда данные загружаются с SqlDataAdapter с помощью хранимой процедуры
Этот вопрос, возможно, задавали много раз, но я все еще борюсь с ним. Я загружаю данные из базы данных следующим образом:
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 - это первичный ключ таблицы.
Теперь я хочу обновить базу данных с помощью адаптера. Обновление (таблица)
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 Обновление успешно, но на самом деле база данных никогда не обновляется. Что не так с моим кодом?