Mysql ODBC驱动程序出错

Mysql ODBC驱动程序出错,mysql,asp.net,vb.net,Mysql,Asp.net,Vb.net,我用这个已经有一段时间了,最近我换了人质。当我使用脚本时,它说 错误[42000][MySQL][ODBC 3.51驱动程序][mysqld-5.1.68-community]您 SQL语法有错误;检查相应的手册 您的MySQL服务器版本,以便在第行的“”附近使用正确的语法 一, 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.Data.Odbc.OdbcException:错误[42000] [MySQL]

我用这个已经有一段时间了,最近我换了人质。当我使用脚本时,它说

错误[42000][MySQL][ODBC 3.51驱动程序][mysqld-5.1.68-community]您 SQL语法有错误;检查相应的手册 您的MySQL服务器版本,以便在第行的“”附近使用正确的语法 一,

描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.Data.Odbc.OdbcException:错误[42000] [MySQL][ODBC 3.51驱动程序][mysqld-5.1.68-community]中有错误 您的SQL语法;检查与您的MySQL对应的手册 第1行“”附近要使用的正确语法的服务器版本

源错误:

第16行:connectme.Open()第17行:Dim ODBCdataadapter 作为OdbcDataAdapter=新的OdbcDataAdapter(sqlquery,connectme)第18行: ODBCdataadapter.Fill(ODBCdataset,“表”)第19行:
connectme.Close()

出了什么问题

注释代码
假设您的
fno
是varchar,您应该按如下方式使用

 Dim sqlquery As String = "SELECT * FROM table WHERE fno = '" & 
                           Request.QueryString("id") & "'" 
参数化命令示例


  • 出了什么问题就像上面说的:您的SQL中有一个语法错误,但是由于您还没有发布,我们就没有什么可说的了。请添加
    sqlquery
    string变量。另外,如果您知道,请告诉我们MySQL的早期版本和当前版本。Dim connectionstring As string=ConfigurationManager.connectionstring(“DBstring”).ConnectionString Dim connectme As OdbcConnection=新OdbcConnection(ConnectionString)Dim ODBCDATASE As DATASE=新数据集()Dim sqlquery As String=“从表中选择*,其中fno=“&Request.QueryString(“id”)connectme.Open()Dim ODBCdataadapter As ODBCdataadapter=新ODBCdataadapter(sqlquery,connectme)ODBCdataadapter.Fill(ODBCdataset,“tkhstock”)connectme.Close()检查Querystring是否实际有一个值,其中fno=将导致语法错误。感谢您的回复。出于安全目的,是否可以将request.Querystring更改为会话id?我尝试将Dim id1设置为string=session(“id”),然后从fno=='”和id1&“id”的表中选择“为什么要使用会话。您可以在页面加载和可访问性方面检查格式是否正确。您可以使用参数化查询,而不是直接在查询中使用查询字符串值。我该怎么做?我对此还是新手,所以我没有太多想法。”。
     Dim sqlquery As String = "SELECT * FROM table WHERE fno = '" & 
                               Request.QueryString("id") & "'"