excel表中的SQL查询语句

时间:2012-07-09 11:27:16

标签: c# .net sql oracle

我正在使用以下格式的SQL查询:

Update TableName Set TaskStatus=xxx where TaskID=xx;

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

在excel文件中,在B cell下,我有一组语句,如Rejected,Completed,Closed等。我的C#代码读取这些单元格并采取适当的操作。例如,如果它显示为Completed,则执行以下查询:

Update TableName Set TaskStatus=Completed where TaskID=xx;

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

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

它会抛出错误,指出“引号应该关闭” 它假定引用不能作为SQL关键字或SQL引用。我该如何克服这个?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:1)

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