我收到错误“关键字附近的语法不正确'''

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我收到错误“关键字附近的语法不正确'''相关的知识,希望对你有一定的参考价值。

我正在尝试更新SQL Server表(连接到WPF项目),我正在收到消息

关键字WHERE附近的语法不正确

我的代码有什么问题?

private void Save_button_Click(object sender, RoutedEventArgs e)
{
    try
    {
        Select("INSERT INTO [dbo].[Users](sumScore, doneLevels) VALUES ('" + ClsGlobal.sumScore + "','" + ClsGlobal.DoneLevels + "') WHERE [userName]= '" + ClsGlobal.userName + "'");
    }
    catch (Exception ex)
    { 
        MessageBox.Show(ex.Message); 
    }
}

public DataTable Select(string selectSQL) 
{
    DataTable dataTable = new DataTable("dataBase");                                                                                         

    SqlConnection sqlConnection = new SqlConnection(@"Data Source =(LocalDB)MSSQLLocalDB; AttachDbFilename = C:UsersAvrahamAppDataLocalMicrosoftMicrosoft SQL Server Local DBInstancesMSSQLLocalDBNew Database.mdf ");

    sqlConnection.Open();                                           

    SqlCommand sqlCommand = sqlConnection.CreateCommand();          
    sqlCommand.CommandText = selectSQL;                            

    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); 
    sqlDataAdapter.Fill(dataTable);                                 

    return dataTable;
}

我试着把[和]或(和)接近用户名这个词,但这仍然没有用。

答案

这个查询:

INSERT INTO [dbo].Users
    VALUES ('" + ClsGlobal.sumScore + "','" + ClsGlobal.DoneLevels + "')
   WHERE [userName]= '" + ClsGlobal.userName;

没有意义。 INSERT插入新行,所以WHERE不合适。

也许你想要一个UPDATE

UPDATE dbo.Users
    SET sumScore = ?,
        DoneLevels = ?
    WHERE userName = ?;

您应该将ClsGlobal.sumScoreClsGlobal.DoneLevelsClsGlobal.userName作为参数传递,而不是更改查询字符串。

以上是关于我收到错误“关键字附近的语法不正确'''的主要内容,如果未能解决你的问题,请参考以下文章

我收到以下错误:[GraphQL 错误]:消息:任务

我收到此错误 NSURLErrorDomain 错误 -999

为啥我收到的 jwt 格式错误?

每当我使用“require”这个词时,我都会收到一个错误,如果我尝试使用 relative_require,我也会收到一个错误

为啥我在尝试使用 fetch 连接 Api 时收到“错误请求”错误 400?

为啥我收到此错误,responseSerializationFailed?