1

我有一个形式的 SQL 查询:

Update TableName Set TaskStatus=xxx where TaskID=xx;

我的 C# 代码中有这个 SQL 查询。

在一个 Excel 文件中,在 B 单元格下,我有一组语句,如 Rejected、Completed、Closed 等。我的 C# 代码读取这些单元格并采取适当的措施。例如,如果它读取已完成,则执行以下查询:

Update TableName Set TaskStatus=Completed where TaskID=xx;

我的问题是,在一个单元格中,我的值无法完成。当我的代码读取此单元格并将其合并到查询中时,

 Update TableName Set TaskStatus=Can't Complete where TaskID=xx;

它抛出一个错误,指出“引号应该关闭”它假设不能作为 SQL 关键字或 SQL 引号中的引号。我该如何克服呢?

4

2 回答 2

3

AFAIK 使用参数化的 SQL 命令解决了这个问题,sincs SqlParameter 对象在这些情况下为你做扩展。您的代码中的类似内容应该可以解决您的问题:

string sql = "Update TableName Set TaskStatus=@status where TaskID=@id;";
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("status", status_excel_call_value);
cmd.Parameters.AddWithValue("id", your_task_id);

cmd.ExecuteNonQuery();
于 2012-07-09T11:34:25.160 回答
1

您可以替换'''. 引号定义了一个文本,因此您的代码会打开,但不会通过插入来关闭文本“区域” Can't

于 2012-07-09T11:34:12.070 回答