C# 将更改保存到数据库

C# 将更改保存到数据库,c#,datagridview,C#,Datagridview,当我从DataGridView中删除一行时,我的数据库没有得到更新。 假设我按Delete键删除DataGridView上的选定行,然后对其他行进行一些其他更改 最后,我会按下保存按钮来保存所有这些更改 这是我的密码: private bool SaveData(DataGridView dgv) { bool bDone = true; DataTable dtVesselDataChanges;

当我从DataGridView中删除一行时,我的数据库没有得到更新。 假设我按Delete键删除DataGridView上的选定行,然后对其他行进行一些其他更改

最后,我会按下保存按钮来保存所有这些更改

这是我的密码:

    private bool SaveData(DataGridView dgv)
        {
            bool bDone = true;
            DataTable dtVesselDataChanges;
            SQLiteCommand DeleteCmd = new SQLiteCommand();
            string sdeleteVesselCase = "  public string SQL_DeleteVesselDataCase = "delete from vesseldata where plantid = @plantid and fileid=@fileid and vdid=@vdid";"
            DeleteCmd.CommandText = sdeleteVesselCase;
 dtVesselDataChanges = gdt.GetChanges();

            if (dtVesselDataChanges.Rows.Count > 0 && dtVesselDataChanges != null)
            {
                for (int i = 0; i < dtVesselDataChanges.Rows.Count; i++)
                {
                    if (dtVesselDataChanges.Rows[i].RowState == DataRowState.Deleted)
                    {
                        int rowindexPlant = Convert.ToInt32(gdt.Rows[i]["PlantId", DataRowVersion.Original]);
                        int rowindexFile = Convert.ToInt32(gdt.Rows[i]["FileId", DataRowVersion.Original]);
                        int rowindexVDID = Convert.ToInt32(gdt.Rows[i]["VDID", DataRowVersion.Original]);
                        DeleteCmd.Parameters.AddWithValue("@plantid", rowindexPlant);
                        DeleteCmd.Parameters.AddWithValue("@fileid", rowindexFile);
                        DeleteCmd.Parameters.AddWithValue("@VDID", rowindexVDID);
                        _DatabaseConnection.ExecuteQuery(DeleteCmd); ;

                    }
                }
            }
There is no error except DB is not updated

您需要有正确的delete命令

DeleteCmd.CommandText = "delete from vesseldata where plantid = @plantid and fileid= @fileid and vdid=@vdid";
在命令文本中设置同名参数

DeleteCmd.Parameters.AddWithValue("@plantid", rowindexPlant);
DeleteCmd.Parameters.AddWithValue("@fileid", rowindexFile);
DeleteCmd.Parameters.AddWithValue("@vdid", rowindexVDID);
如果数据库连接尚未打开,请在ExecuteQuery之前打开它


如果应用程序未到达ExecuteQuery行,则不会出现任何错误,请调试并检查应用程序是否到达该点,以及命令文本、连接状态和任何错误

这个函数被调用了吗?我认为除了调试和查看函数的运行情况外,没有其他方法了。您发布的代码甚至没有编译。请参阅行字符串sdeleteVesselCase=public string SQL\u DeleteVesselDataCase=..@Thorsten Dittmar:对不起,我认为您不会尝试编译代码。