0

在我的 C# 代码中,我将表的所有 id 读入字符串数组ids[i],然后更新表 WHERE user_id = id[i] 中的不同列。

当正在读取的 id(也传递回UPDATE)包含撇号时会出现问题 - '

       while (rdr.Read()
       {
          ids[i] = rdr.GetValue(0).ToString().Trim();
          ids[i].Replace("'", "''");
          ....

我也尝试过ids[i].Replace("'", "\'");
ids[i].Replace("'", "-");但我确信这会抛弃我的 WHERE,因为它会查找 user_id "O-Test" 而不是 "O'Test"。

我的 UPDATE SQL 是这样的:

 UPDATE [User]
 SET first_name = '{1}'
 WHERE [user_id] = '{2}'

有任何想法吗?

谢谢。

4

1 回答 1

3

您需要将其分配回ids[i]

ids[i] = ids[i].Replace("'", "''");

ids[i].Replace("'", "''");这只会在内存中创建一个字符串并将其丢弃,您需要将其分配回ids[i]您的 while 循环中。

所以你的代码应该是:

while (rdr.Read()
       {
          ids[i] = rdr.GetValue(0).ToString().Trim();
          ids[i] = ids[i].Replace("'", "''");
          ....
于 2012-08-24T10:33:29.193 回答