Пользователь вносит изменения в ячейку.
Событие CellEndEdit
вызвано.
В методе Save ()
изменения отображаются в строке adapter.Update (table_2);
.
Изменения не отображаются в базе данных (изменения не сохраняются в базе данных).
Если пользователь вызывает метод Save ()
с помощью кнопки, изменения отображаются в базе данных (в таблице источников данных dataGridView
).
Вопрос.
Как обновить изменения в источнике данных после изменения значения ячейки в dataGridView?
Мой код
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
i++;
Save();
richTextBox1.Text += i + " Event - `CellEndEdit` \r\n";
}
public DataTable CreateCmds()
{
table_2 = new DataTable();
try
{
string connectionString = @"Data Source=.\SQLEXPRESS1;Initial Catalog=Prb;Integrated Security=True";
string queryString = "SELECT * FROM tbl_01_Groups";
using (SqlConnection connection = new SqlConnection(connectionString))
{
adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
connection.Open();
adapter.Fill(table_2);
}
}
catch (Exception ex)
{
string s = ex.Message;
string t = ex.StackTrace;
// throw;
}
return table_2;
}
public void Save()
{
string connectionString = @"Data Source=.\SQLEXPRESS1;Initial Catalog=Prb;Integrated Security=True";
string queryString = "SELECT * FROM tbl_01_Groups";
using (SqlConnection connection = new SqlConnection(connectionString))
{
adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
connection.Open();
adapter.Update(table_2);
}
}
![enter image description here](https://i.stack.imgur.com/wHAWx.png)
Update_1
То же самое происходит, когда я использую событие CellValueChanged
.
Событие CellValueChanged
вызвано.
В методе Save ()
изменения отображаются в строке adapter.Update (table_2);
.
Изменения не отображаются в базе данных (изменения не сохраняются в базе данных).
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
i++;
Save();
richTextBox1.Text += i + " Event - `CellValueChanged` \r\n";
}