FROM语句中的语法错误?

3
尝试着解决这个问题已经有一段时间了,我曾反复考虑是否要使用登录工具来创建自己的登录页面,但最终还是决定使用 Login 工具,因为我以前用过。不管怎样,当我尝试登录时,出现了以下错误:

FROM 子句中的语法错误

描述:在当前 Web 请求执行期间发生未处理的异常。请检查堆栈跟踪信息,了解有关该错误以及代码中起源的位置的详细信息。

异常详细信息:System.Data.OleDb.OleDbException: FROM 子句中的语法错误。

源错误:

应该是 sqlDA.fill(ds.userinfo) 出了问题;

以下是我的类中的代码:

public class clsDataLayer
{

   public static dsUser VerifyUser(string Database, string UserName, string UserPassword)
   {
     dsUser DS;
     OleDbConnection sqlConn;
     OleDbDataAdapter sqlDA;
     // Connects to the DB
    sqlConn=new OleDbConnection("PROVIDER=Microsoft.ACE.OLEDB.12.0;" +"Data Source=" + 
        Database);
       sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
           "Where UserName like " + UserName+"' "+
           "and UserPassword like '"+UserPassword+"'",sqlConn);
       DS= new dsUser();
   sqlDA.Fill(DS.UserInfo);
       return DS;

  }
5个回答

1

试试这个

sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
           " Where UserName like '" + UserName+"' "+
           " and UserPassword like '"+UserPassword+"'",sqlConn);

你好!感谢您的快速回复!但是那段代码和我提供的代码有什么区别呢?我确实复制粘贴了您发布的内容,但是没有成功 :( - Alex Lozano
@AlexLozano 只有一个错误,像表名和 where 子句没有空格,所以我只在 where 子句中添加了一个空格。 - Mukesh Kalgude
谢谢!它可以工作了!现在只需要弄清楚登录验证。 - Alex Lozano

0

我认为您忘记在变量“用户名”前放置单引号('),请尝试以下内容-

sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
           " Where UserName like '" + UserName+"' "+
           " and UserPassword like '"+UserPassword+"'",sqlConn);

嗨,Alex,你要寻找的区别是在连接 SQL 字符串时使用单引号(')和空格。 - Prateek Shukla

0

TableName userinfoWhere之间加上空格,同时在其他keywords之间也加上空格。

sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
       " Where UserName like '" + UserName+"' "+
       " and UserPassword like '"+UserPassword+"'",sqlConn);

0

你的代码第二行缺少单引号。


-1
确保在FROMWHERE子句中所有的撇号和空格都被正确地排列。
var sqlDA = new OleDbDataAdapter("Select AccessLevel from UserInfo" +
           " Where UserName like '" + UserName + "'"+
           " and UserPassword like '" + UserPassword + "'", sqlConn);

如果您对此语句不确定,可以在MS Access查询生成器上进行检查。

如果需要,可以在LIKE子句中添加%以扩大搜索范围。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接