私はwinformsアプリケーションをdatagridviewで使用しています。 問題:データベース コードで編集したデータを保存しようとすると:これはSqliteを持つ問題である場合DataGridviewがDBに更新されない
private void FillData(string selectCommand)
{
SQLiteConnection conn = new SQLiteConnection(connString);
dataGridView1.AutoGenerateColumns = true;
string selectCommand = "select * from Table1";
da = new SQLiteDataAdapter(selectCommand, connString);
conn.Open();
ds = new DataSet();
SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(da);
da.Fill(ds,"Design1");
dataGridView1.DataSource = ds.Tables[0] ;
dataGridView1.DataMember = "Design1";
}
private void btnSave_Click(object sender, EventArgs e)
{
SQLiteConnection conn = new SQLiteConnection(connString);
try
{
dataGridView1.EndEdit();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ds.Tables[0].Rows[i].AcceptChanges();
}
da.Update(ds.Tables[0]);
}
catch (Exception ex)
{
throw ex;
}
}
わかりません。 DB内で更新されない点を除き、エラーはありません。アプリケーションを停止してリロードすると、編集内容がDBに保存されます。
は、私はあなたの周りvarsはそのすべてを維持することは良くありません、私も言ってみましょうれるAcceptChangesとUpdateライン
dataGridView1.EndEdit();
da.Update(ds.Tables[0]);
// Just accept on the table, no need to do row by row
ds.Tables[0].AcceptChanges();
See the Remarks here for a reference
の順序を逆にすべきだと思うあなた 日
変更を見ていけないことをあなたは意味がWinフォームがありますか?しかし、それらはDBに保存/更新されていますか? – feco
@feco:DBの変更は表示されません。アプリケーションを再起動すると、初期値のフォームがロードされます – user575219