【问题标题】:sql statement single quote double quote - Either BOF or EOF is truesql 语句单引号双引号 - BOF 或 EOF 为真
【发布时间】:2016-09-28 00:42:14
【问题描述】:

你能帮我处理一下我的 sql 语句吗? studentID 和 password 都是文本。 我以为我弄清楚了单引号和双引号,但显然不是因为我收到错误“BOF 或 EOF 为真,或者当前记录已被删除。请求的操作需要当前记录”。

我的表成员中有记录。

var mycon;
mycon = new ActiveXObject("ADODB.Connection");
var myrec ;
myrec= new ActiveXObject("ADODB.Recordset"); 
mycon.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data  Source=C:\\Database2.mdb");

var txtpassword = Request.QueryString("txtpassword");
var txtuserID = parseInt (Request.QueryString("txtuserID"));

var sql;
sql = "SELECT * FROM Members WHERE StudentID='"+txtuserID+"'AND  Password='"+txtpassword+"'";  

myrec.Open (sql, mycon);  

【问题讨论】:

    标签: sql asp.net sql-server ado


    【解决方案1】:

    您的语法看起来不正确,因为您在 sql 变量中的 txtuserID 值和 and 之间没有空格。它应该是这样的

    "SELECT * FROM Members WHERE StudentID = '"+txtuserID+"' AND  Password 
    ='"+txtpassword+"'";
    

    【讨论】:

      【解决方案2】:
      txtuserID = parseInt (Request.QueryString("txtuserID"));
      

      您正在将 txtuserID 解析为 INT
      你不应该把它放在引号中,所以你可以将你的 SQL 更改为:

      "SELECT * FROM Members WHERE StudentID= "+txtuserID+" AND  Password='"+txtpassword+"'";
      

      【讨论】:

        【解决方案3】:

        如果我错了,请纠正我,但在:

        var sql;

        sql = "SELECT * FROM Members WHERE StudentID='"+txtuserID+"'AND Password='"+txtpassword+"'";

        文本中的 SQL 语句不是以“;”结尾的。

        【讨论】:

          猜你喜欢
          • 2018-05-09
          • 1970-01-01
          • 2015-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-20
          • 2023-03-25
          相关资源
          最近更新 更多