C# 更新命令不更新数据

C# 更新命令不更新数据,c#,sql,C#,Sql,我有两个OLEDBCommd用于更新数据库中的表。其中一个正在工作(向空字段添加数据),但另一个用于清空数据的命令不起作用。有什么想法吗 第一次更新正在工作的commnd(将值添加到空数据): 第二个不起作用(替换值) 当运行第二个代码时,我没有得到任何错误。我放置了一个计数器,它显示了正确的操作数,但我看不到任何修改。您错误地引用了适配器3,而不是适配器1 试试这个 conn.Open(); OleDbDataAdapter adapter1 = new OleDbDataAdapter();

我有两个OLEDBCommd用于更新数据库中的表。其中一个正在工作(向空字段添加数据),但另一个用于清空数据的命令不起作用。有什么想法吗

第一次更新正在工作的commnd(将值添加到空数据):

第二个不起作用(替换值)


当运行第二个代码时,我没有得到任何错误。我放置了一个计数器,它显示了正确的操作数,但我看不到任何修改。

您错误地引用了
适配器3
,而不是
适配器1

试试这个

conn.Open();
OleDbDataAdapter adapter1 = new OleDbDataAdapter();
adapter1.UpdateCommand = conn.CreateCommand();
adapter1.UpdateCommand.CommandText = "UPDATE table SET Occup=Yes, Profesor=?";
adapter1.UpdateCommand.Parameters.AddWithValue("p1", "name");
adapter1.UpdateCommand.ExecuteNonQuery();
conn.Close();

conn.Open();
OleDbDataAdapter adapter3 = new OleDbDataAdapter();
adapter3.UpdateCommand = conn.CreateCommand();
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occup=No, Profesor=?";
adapter3.UpdateCommand.Parameters.AddWithValue("p1", "replace_prof_name");
adapter3.UpdateCommand.ExecuteNonQuery();
conn.Close();

第二个示例中的Occup=No似乎会引起问题-“No”可能是一个保留的sql字,因此如果在没有任何转义的情况下执行它(如Occup='No'),那么查询的行为可能会很奇怪您指的是
adapter3
而不是
adapter1
@tchrikch它是一个保留的关键字,但这应该会给出一个错误:
“附近的语法不正确…”
。OP说他没有收到任何错误。它们不在同一个函数中,所以我使用的名称无关紧要。@是的,但声明和定义名称应该相同。第一部分见
conn.Open();
OleDbDataAdapter adapter3 = new OleDbDataAdapter();
adapter3.UpdateCommand = conn.CreateCommand();
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occup=No, Profesor=?";
adapter3.UpdateCommand.Parameters.AddWithValue("p1", "replace_prof_name");
adapter3.UpdateCommand.ExecuteNonQuery();
conn.Close();
conn.Open();
OleDbDataAdapter adapter1 = new OleDbDataAdapter();
adapter1.UpdateCommand = conn.CreateCommand();
adapter1.UpdateCommand.CommandText = "UPDATE table SET Occup=Yes, Profesor=?";
adapter1.UpdateCommand.Parameters.AddWithValue("p1", "name");
adapter1.UpdateCommand.ExecuteNonQuery();
conn.Close();

conn.Open();
OleDbDataAdapter adapter3 = new OleDbDataAdapter();
adapter3.UpdateCommand = conn.CreateCommand();
adapter3.UpdateCommand.CommandText = "UPDATE table SET Occup=No, Profesor=?";
adapter3.UpdateCommand.Parameters.AddWithValue("p1", "replace_prof_name");
adapter3.UpdateCommand.ExecuteNonQuery();
conn.Close();