我想到了几个选项。由于我不知道您使用的是哪种数据库,我只是猜测:
- 使用参数。我知道你已经尝试过了,但我建议你再试一次。如果失败,请尝试以下操作:
- 删除“where”的逗号(一行!)。
- 将 SQL 语句中的所有双引号更改为单引号。文字应该是引号
"'" + m_strNote.ToString().Trim() + "'"
,而不是'"' + m_strNote.ToString().Trim() + '"'
- 将值中的所有单引号 (') 替换为双单引号 (''):
"'" + m_strNote.ToString().Trim().Replace("'", "''") + "'"
如果您将选项 2 到 4 结合起来,您将得到:
string strRequest = "update " + strNomTable.Trim() + " set "
+ "evenotes = '" + m_strNote.ToString().Trim().Replace("'", "''") + "' "
+ "where eveNum = '" + strEvtNumeroString.Trim().Replace("'", "''") + "'";
Visual Fox Pro 数据库和 OleDbParameters
您可以使用 OleDbParameters。名称以 . 开头@
。所以:
OleDbCommand command = new OleDbCommand(
"update " + strNomTable.Trim() + " set "
+ "evenotes = @evenotes "
+ "where eveNum = @eveNum");
command.Parameters.AddWithValue("@evenotes", m_strNote.ToString().Trim());
command.Parameters.AddWithValue("@eveNum", strEvtNumeroString.Trim());