我有一个程序需要更新数据库中的数据。
int index = listBox2.SelectedIndex;
var cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE task SET " +
"[task_name] = @task_name," +
"[task_desctiption] = @task_desctiption," +
"[task_date] = @task_date," +
"[task_last_update_date] = @task_last_update_date" +
"WHERE id = @id";
cmd.Parameters.Add("@id", OleDbType.Integer).Value = index;
cmd.Parameters.Add("@task_name", OleDbType.VarChar, 50).Value = taskNameT.Text;
cmd.Parameters.Add("@task_desctiption", OleDbType.VarChar, 500).Value = taskDescriptionT.Text;
cmd.Parameters.Add("@task_date", OleDbType.Date).Value = DateTime.Parse(taskDateT.Text);
cmd.Parameters.Add("@task_last_update_date", OleDbType.Date).Value = DateTime.Now;
cmd.Connection = connection;
connection.Open();
cmd.ExecuteNonQuery();
{
MessageBox.Show("Update Success!");
backBtn.PerformClick();
}
connection.Close();
但是执行的时候出现“It is necessary to declare a scalar variable @task_name”的错误。我在 Internet 上搜索,但没有任何选项有帮助。主要问题被大家描述为数据类型不匹配或者参数声明通过
.AddWithValue. 改了还是不行 我不想重复这个问题,因为有很多类似的问题,但没有一个解决方案有帮助。这就是我来这里的原因。
据我了解,
OleDbCommand它不支持请求中的命名参数。因此,只能通过顺序来排序。
创建时参数的名称将被忽略,可以是任何名称。