【发布时间】:2019-01-11 20:30:12
【问题描述】:
我对 C# 有点陌生,我通常使用 VB.net 和 SQL 命令进行编码 我的数据表中有一个小问题:当我添加新行或编辑行并保存更改时,一切正常,但是当我删除一行时,它不会记录在服务器上,并且该行说我保存更改的代码如下:
using (SqlConnection con = new SqlConnection(ConString))
{
CmdString = "SELECT * FROM IncomingPapers";
SqlCommand cmd = new SqlCommand(CmdString, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
SqlCommandBuilder builder = new SqlCommandBuilder(sda);
sda.UpdateCommand = builder.GetUpdateCommand();
sda.DeleteCommand = builder.GetDeleteCommand();
sda.InsertCommand = builder.GetInsertCommand();
sda.Update(dt);
}
从数据表中删除一行的代码是:
dt.Rows.RemoveAt(PapersLV.SelectedIndex);
dt.AcceptChanges();
该行已从数据表中删除,但保存时更改不会保存到服务器,所有删除的行都恢复正常
【问题讨论】:
-
AcceptChanges 使您的内存中修改无法被更新检测到
-
删除行与删除行不同(与VB相同)
-
@Steve 是的,我最近这样做了,但没有它。相同的东西仍然被删除的行没有得到更新
-
@WelcomeOverflow 我曾经使用 SQL 命令来删除/更新和插入新行,并且由于我切换到 C# 我读过您可以使用构建器为您制作 Sql 命令,而不是自己编写它们,我应该自己写吗?
标签: c# sql-server