附加信息:关键字'where'附近的语法不正确

时间:2015-09-10 23:14:13

标签: c# sql sql-server

错误查询

错误: “附加信息:关键字'where'附近的语法不正确。”

我的鳕鱼

private void button11_Click(object sender, EventArgs e)
    {
        {
            string connectionString = GetCString();
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                string query = string.Format("INSERT INTO Sys_Users_Detail(Money) VALUES ('{0}'), where NickName ('{1}')", textBox20.Text, textBox19.Text);
                using (SqlCommand cmd = new SqlCommand(query, connection))

                    cmd.ExecuteNonQuery();
                Logger.getS().info_pc(string.Format("Foi Enviado : {0} Cps , Para : {1}", textBox20.Text, textBox19.Text));
            }


        }
    }

错误查询:

"INSERT INTO Sys_Users_Detail(Money) VALUES ('{0}'), where NickName ('{1}')"

4 个答案:

答案 0 :(得分:4)

您确定要insert吗?您最有可能想要update

 UPDATE Sys_Users_Detail
        SET Money = {0}
        WHERE NickName = '{1}'

我假设Money是一个十进制值,所以你不应该在值周围加上引号。

同样通过使用string.Format,您可以接受 SQL注入攻击。使用SqlParameter来避免攻击。

答案 1 :(得分:1)

它不是有效的INSERT语句。 1)INSERT不能有WHERE子句。 2)money列可能是数字,因此不应引用该值。 这也是SQL注入的好例子 - 请参阅下面的问题评论。

答案 2 :(得分:0)

这不是有效的INSERT查询。您似乎正在尝试根据NickName更新值,这不是INSERT的用途。

如果是这种情况,请尝试:

UPDATE Sys_Users_Detail
SET Money = '{0}'
WHERE NickName = '{1}'

答案 3 :(得分:-2)

查询必须在INSERT中 查询必须在INSERT中 查询必须在INSERT中 查询必须在INSERT中