Я действительно не могу вспомнить наверняка, но я думаю, что это может быть потому, что вы вызываете AcceptChanges до вашего обновления. Вы говорите своему DataSet принять все ваши изменения и изменения, что приводит к тому, что у ваших обновленных строк будет RowState из «Без изменений». Затем вы делаете обновление, но оно говорит: «Эй, эти строки данных не изменены, поэтому обновления не нужны!»
По крайней мере, я так думаю, что помню эту работу.
Это не проверено, но я думаю, что это работает?
DataSet dataSet;
SqlDataAdapter adapter;
string connectionString = "my connection string";
using (var connection = new SqlConnection(connectionString))
{
dataSet = new DataSet();
connection.Open();
adapter = new SqlDataAdapter("SELECT * FROM dbo.MyTable", connection);
var commandBuilder = new SqlCommandBuilder(adapter);
adapter.Fill(dataSet, "MyTable");
dataGridView1.DataSource = dataSet.Tables["MyTable"];
}
//Whenever you update
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
if (adapter.Update(dataSet.Tables["MyTable"]) > 0)
lblMessage.Text = "INFO: Record updated successfully!";
}