We're using a DataGridView to apply updates to a database table. It mostly works fine, but it depends on how we navigate about the DataGridView's cells.
If we double-click in a cell, change the data, then navigate to another cell by moving the mouse and clicking another cell, it works. The MessageBox call below displays a "1" and the data in the database has in fact changed.
If we double-click in a cell, change the data, then press the Enter key, it does not work. The MessageBox call below displays a "0" and the data in the database remains unchanged.
What's up with that? Thanks! -- Curt
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlDataAdapter da;
DataTable dt;
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.CellEndEdit += new DataGridViewCellEventHandler(OnEndingEdit);
SqlConnection myConnection = new SqlConnection("..." );
myConnection.Open();
da = new SqlDataAdapter("SELECT * FROM Agencies", myConnection);
dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
myConnection.Close();
}
private void OnEndingEdit(object sender, DataGridViewCellEventArgs e)
{
SqlCommandBuilder builder = new SqlCommandBuilder(da);
builder.GetUpdateCommand();
MessageBox.Show(da.Update(dt).ToString());
}
}