0

私のC#コードでは、テーブルのすべてのIDを文字列配列に読み込んでから、テーブルids[i]の別の列WHERE user_id =id[i]を更新します。

この問題は、読み取られている(また、に返されるUPDATE)IDにアポストロフィが含まれている場合に発生します-'

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

私も試しids[i].Replace("'", "\'");
ましids[i].Replace("'", "-");たが、「O'Test」ではなくuser_id「O-Test」を検索するため、WHEREが破棄されると確信しています。

私のUPDATESQLは、次のようなものです。

 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 に答える