插入语句中的C#语法错误

插入语句中的C#语法错误,c#,asp.net,C#,Asp.net,我不明白为什么我在insert语句中出错,我检查了保留字,就我所知,密码是其中唯一的保留字。我猜是学生号,因为它是一个字符串,我正在更改值。但我还是不确定。通过使用会话(studentnumber),我尝试了两种解决方案,但仍然没有成功。以下是使用参数化查询的方法: Dim strSQL As String strSQL = "INSERT INTO TBLLOGIN (USERNAME,[PASSWORD],DISPLAYNAME,ROLEID,SECRETQ

我不明白为什么我在insert语句中出错,我检查了保留字,就我所知,密码是其中唯一的保留字。我猜是学生号,因为它是一个字符串,我正在更改值。但我还是不确定。通过使用会话(studentnumber),我尝试了两种解决方案,但仍然没有成功。

以下是使用参数化查询的方法:

        Dim strSQL As String

        strSQL = "INSERT INTO TBLLOGIN (USERNAME,[PASSWORD],DISPLAYNAME,ROLEID,SECRETQUESTION,SECRETANSWER,ISACTIVE,STUDENTNUMBER, APPLICANTID,EMAILADDRESS) "
        strSQL += "values( '" & Me.txtUName.Text & "' "
        strSQL += ",'" & Me.txtPassword.Text & "' "
        strSQL += ",'" & txtFirstName.Text & " " & txtMiddleName.Text & " " & txtLastName.Text & "' "

        strSQL += ",'" & 6 & "' "
        strSQL += ",'" & Me.ddlsecretquestion.SelectedValue & "' "
        strSQL += ",'" & Me.txtSecretAnswer.Text & "' "
        strSQL += ",'" & "NO" & "' "
        strSQL += ",'" & studNumber & "' "
        strSQL += "," & studNumber.Replace("SY15000", "") & " "
        strSQL += ",'" & Me.txtUName.Text & "') "

        Dim cmdQuery As OleDb.OleDbCommand = New OleDb.OleDbCommand(strSQL, AccessConnectionString)
        Dim xgen As Integer
        cmdQuery.CommandType = Data.CommandType.Text

        xgen = cmdQuery.ExecuteNonQuerystrong text
应该是

strSQL += "," & studNumber.Replace("SY15000", "") & " "

您缺少引号,因为它是一个类似STUDENTNUMBER的字符串。

在执行它之前,最后的
strSQL
是什么?您的列类型是什么?确切的错误消息是什么?更重要的是,您应该始终使用。这种类型的字符串连接容易受到攻击。第一步-打印出完整的字符串并查看它的外观-检查其中的错误。此外,开始阅读参数,这是一种更安全、最终更简单的数据传递方式,无需将数据全部转换为字符串(然后处理格式问题)。首先,您收到了什么错误消息?第二,尽量不要使用字符串连接来插入SQL,尝试转换为参数化SQL查询“why i get error”-如果提供获得的错误文本,回答您的问题会容易得多。在不知道错误消息的情况下,您使用的值或可能看到的最终SQL语句,这很难回答。这如何回答这个问题?这是一个最佳实践。应该有助于解决这个问题。我想你可以尝试使用这种方法。没错。看看代码,其中的查询是字符串的串联-这是一团糟。您希望如何查找问题?使用参数重写,可能更快地找到错误。投票给Igor。我认为我们需要填写一个数字(替换文本)。谢谢您的尝试。在这种情况下,您需要进行一些转换,不是吗?不,因为sql server指令是基于字符串的。真的需要很多验证才能保证安全。但是我认为问题不在这里,所以如果是字符串,你需要引号。您尝试过我发布的内容吗?此列的数据类型不是varchar。我认为这是一种数字类型。
strSQL += "," & studNumber.Replace("SY15000", "") & " "
strSQL += ",'" & studNumber.Replace("SY15000", "") & "' "