2016-02-03 94 views
1

我的問題是將我的數據從DataGridView保存到MySql數據庫中。以編程方式編輯DataGridView之後的C#更新MySql

當我插入所選行的Cell的新值並按下buttonSalvaContatore時,數據將不會保存在數據庫中。

怎麼了?

這是當我填寫DataGridView

const string queryRicerca = "SELECT * FROM colori ORDER BY id_colore ASC"; 
using (daColori = db.ExecuteDataAdapter(queryRicerca)) 
{ 

    mySqlCommandBuilder = new MySqlCommandBuilder(daColori); 
    daColori.UpdateCommand = mySqlCommandBuilder.GetUpdateCommand(); 
    daColori.InsertCommand = mySqlCommandBuilder.GetInsertCommand(); 

    daColori.SelectCommand.CommandType = CommandType.Text; 
    dsColori = new DataSet();t 
    daColori.Fill(dsColori, "colori"); 
    bSource.DataSource = dsColori.Tables["colori"]; 
    dataGridColori.DataSource = bSource; 
    dataGridColori.Columns[0].HeaderText = "Codice"; 
    ((DataGridViewTextBoxColumn)dataGridColori.Columns[0]).MaxInputLength = 2; 
    dataGridColori.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; 
    dataGridColori.Columns[1].HeaderText = "Descrizione"; 
    dataGridColori.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
} 

這是我的按鈕

private void buttonSalvaColore_Click(object sender, EventArgs e) 
{ 
    if (dataGridColori.CurrentRow != null) 
    { 

     dataGridColori.CurrentRow.Cells[0].Value = textBoxCodiceColore.Text; 
     dataGridColori.CurrentRow.Cells[1].Value = textBoxDescColore.Text; 

     daColori.Update(dsColori,"colori"); 

    } 
} 

回答

1

嘗試通過調用EndEdit您更新DataGridView後更新您的BindingSource的所有掛起更改。

dataGridColori.CurrentRow.Cells[0].Value = textBoxCodiceColore.Text; 
dataGridColori.CurrentRow.Cells[1].Value = textBoxDescColore.Text; 
bSource.EndEdit(); 
daColori.Update(dsColori,"colori"); 

參考:BindingSource.EndEdit() Method