C# 将UltraGrid行提交到数据库后,行有时会被删除

C# 将UltraGrid行提交到数据库后,行有时会被删除,c#,database,ultrawingrid,C#,Database,Ultrawingrid,问题: 我试图通过将一行信息直接添加到网格中、捕获数据并将其提交到数据库来更新数据库 好的,我在UltraGrid中插入一行,关闭我的应用程序并重新启动它。。。有时它会提交行,有时如果我重新启动应用程序,则会删除除2(非常旧的条目)之外的所有新条目 这是我的密码: 捕获对新插入行的引用: private void ultraGrid1_BeforeRowDeactivate(object sender, CancelEventArgs e) { if (!firs

问题:

我试图通过将一行信息直接添加到网格中、捕获数据并将其提交到数据库来更新数据库

好的,我在UltraGrid中插入一行,关闭我的应用程序并重新启动它。。。有时它会提交行,有时如果我重新启动应用程序,则会删除除2(非常旧的条目)之外的所有新条目

这是我的密码:

捕获对新插入行的引用:

    private void ultraGrid1_BeforeRowDeactivate(object sender, CancelEventArgs e)
    {
        if (!first) //Ignore this step if application has just started
        {
            UltraGrid g = (UltraGrid)(sender);
            r = g.ActiveRow;
            ultraGrid1.Rows[g.ActiveRow.Index].Cells["Is Closed"].Value = false; 
        }
    }
测试并输入密钥

    private void ultraGrid1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)(13)) //Test for ENTER key
        {
            if (r.Band.Index == 0)
            {
                MessageBox.Show(r.Cells["ID"].Text);
                string Action = (string)r.Cells[1].Value;
                bool isChecked = (bool)r.Cells[2].Value;
                MainActionsInsert(Action, isChecked);
                UpdateTables();
            }
        }
    } 
如果key=Enter,则显示新输入的ID值 通过下面的MainActionsInsert()将其添加到数据库

通过Command.ExecuteOnQuery执行Insert命令

最后

    private void UpdateTables()
    {
        ultraGrid1.UpdateData();
        ultraGrid2.UpdateData();
        ultraGrid3.UpdateData();
        //
        minutesDataSet.AcceptChanges();
        MainActionsAdapter.Update(minutesDataSet.MainActions);
        SubActionsAdapter.Update(minutesDataSet.SubActions);
        SubActionsNotesAdapter.Update(minutesDataSet.SubActionNotes);
        //
        MainActionsAdapter.Fill(minutesDataSet.MainActions);
        SubActionsAdapter.Fill(minutesDataSet.SubActions);
        SubActionsNotesAdapter.Fill(minutesDataSet.SubActionNotes);
    }

也请注意我的声明。。。有时旧的/已经提交的条目会从数据库中删除(我已经检查过了),而这些行确实存在于数据库中?是否可能在提交insert事务之前检查DB中的行,因此它们不会显示?
    private void UpdateTables()
    {
        ultraGrid1.UpdateData();
        ultraGrid2.UpdateData();
        ultraGrid3.UpdateData();
        //
        minutesDataSet.AcceptChanges();
        MainActionsAdapter.Update(minutesDataSet.MainActions);
        SubActionsAdapter.Update(minutesDataSet.SubActions);
        SubActionsNotesAdapter.Update(minutesDataSet.SubActionNotes);
        //
        MainActionsAdapter.Fill(minutesDataSet.MainActions);
        SubActionsAdapter.Fill(minutesDataSet.SubActions);
        SubActionsNotesAdapter.Fill(minutesDataSet.SubActionNotes);
    }