C# 将更改保存到数据库
当我从DataGridView中删除一行时,我的数据库没有得到更新。 假设我按Delete键删除DataGridView上的选定行,然后对其他行进行一些其他更改 最后,我会按下保存按钮来保存所有这些更改 这是我的密码:C# 将更改保存到数据库,c#,datagridview,C#,Datagridview,当我从DataGridView中删除一行时,我的数据库没有得到更新。 假设我按Delete键删除DataGridView上的选定行,然后对其他行进行一些其他更改 最后,我会按下保存按钮来保存所有这些更改 这是我的密码: private bool SaveData(DataGridView dgv) { bool bDone = true; DataTable dtVesselDataChanges;
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:对不起,我认为您不会尝试编译代码。