C# OleDb sql "UPDATE, WHERE" 异常

C# OleDb sql "UPDATE, WHERE" exception

所以我有以下代码:

public static void WriteToDatabase(string sql,string value,int Amount, string URL)
    {
int times = int.Parse(((dr)[dt.Columns[1]]).ToString()) + Amount;
                    sql = "UPDATE Words "+
                          " SET Amount = " + times + 
                          " WHERE Word = " + value + 
                          " AND Website = " + URL + ";";
myAdp = new OleDbDataAdapter();
myAdp.InsertCommand = new OleDbCommand(sql, myConn);
                    myAdp.InsertCommand.ExecuteNonQuery();
}

应该更新预制 Microsoft Access 2007 文件中的值, 每当我 运行 他们遵循 OleDb 异常的代码时:

'System.Data.OleDb.OleDbException' 类型的未处理异常发生在 System.Data.dll 中, 查询表达式中缺少运算符的语法错误:'Word = meta AND Website = http://www.twitch.tv/directory'。” “

所以我在网上搜索了可能发生的常见错误,但没有找到, 如果有人能找到 sql 中的错误,我会很高兴。 谢谢

您绝对应该为此使用参数化查询。这才是传值的正确方式。

您的问题是您的查询缺少单引号:

"UPDATE Words "+
                      " SET Amount = " + times + 
                      " WHERE Word = '" + value + "'" +
                      " AND Website = '" + URL + "'"

但让我再次强调,虽然这应该有效,但您应该修复代码,以便它使用参数

假设 Word 字段是一个 varchar,您忘记了变量周围必要的单引号。 " WHERE Word = '" + value + "'"