Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL语句无效;应为“删除”、“插入”、“过程”、“选择”或“更新”_Sql_Vb.net - Fatal编程技术网

SQL语句无效;应为“删除”、“插入”、“过程”、“选择”或“更新”

SQL语句无效;应为“删除”、“插入”、“过程”、“选择”或“更新”,sql,vb.net,Sql,Vb.net,嗨,我有一个无效的sql语句错误。这是我的代码: 为OleDb连接导入System.Data.OleDb 导入ConnectionState的System.Data 公共类WebForm1 继承System.Web.UI.Page 受保护的子页_LoadByVal发送方作为对象,ByVal e作为System.EventArgs处理Me.Load 端接头 受保护的子BTN插入\u单击发件人作为对象,e作为事件args处理BTN插入。单击 '1声明变量 Dim strName As String=

嗨,我有一个无效的sql语句错误。这是我的代码:

为OleDb连接导入System.Data.OleDb 导入ConnectionState的System.Data 公共类WebForm1 继承System.Web.UI.Page 受保护的子页_LoadByVal发送方作为对象,ByVal e作为System.EventArgs处理Me.Load 端接头 受保护的子BTN插入\u单击发件人作为对象,e作为事件args处理BTN插入。单击 '1声明变量 Dim strName As String=txtName.Text Dim strAddress As String=txtAddress.Text “2.创建到数据库的新连接。 Dim conn作为新的OleDbConnectionProvider=Microsoft.ACE.OLEDB.12.0;数据源='C:\Users\GT\Documents\Database11.accdb' 如果连接状态=连接状态打开,则 关闭连接 如果结束 “3.打开与数据库的连接 康涅狄格州公开赛 '4.将SQL语句分配到sqlString变量中 将sqlString设置为字符串 sqlString=插入到tblStuInfo stuName中,studAddress值“&strName&',”&stradAddress&” “5.创建一个新命令,将SQL语句与连接链接起来 Dim sqlcommand作为新的OleDbCommandsqlString,conn “6.执行你的命令。 sqlcommand.ExecuteOnQuery 端接头 末级 有什么问题?数据库的路径和数据库的表名正确。请帮忙

尝试替换

sqlString = "INSERT INTO tblStuInfo (stuName, stuAddress) VALUES ('"
    & strName & "' , '" & strAddress & "')"

这应该可以解决任何SQL注入问题,当字符串包含“字符”时会发生这种问题


无论如何,我认为您应该在基础表中添加或使用一个键,否则您将如何获取这些值?

您在那里遇到了sql注入错误。使用参数化的SqlCommand。我该怎么做?顺便说一句,这是我在一本书中遵循的一个教程,我如何使我的代码工作?怎么了?请阅读:我不想使用参数化的SqlCommand,本教程来自一本书。我的代码有什么问题?我正确地遵循了它,但得到了一个错误,这是可行的,但为什么在教程中没有提到使用替换?可能是因为只有当StradAddress包含一个引用时才会出现问题?在StradAddress没有任何引号的情况下,查询似乎没有问题?@user3414064 wild guess可能是因为教程是关于vb.net的,而不是关于SQL的,所以想当然地认为您已经知道SQL的技巧和怪癖,或者可能是因为它是一个教程,ant的东西有时会被引入一点点,而且在sql中管理字符串分隔符被教程认为是一个“高级主题”。不,我确信教程是正确的,并且我确信我正确地遵循了它。这里是:@user3414064最好的方法是使用查询参数,但它更复杂,请检查这里
sqlString = "INSERT INTO tblStuInfo (stuName, stuAddress) VALUES ('"
    & strName.Replace("'", "''") & "' , '" & strAddress.Replace("'", "''") & "')"