现在尝试解决这个问题一段时间了,我已经回过头来自己登录页面而不使用登录工具了,但我更喜欢使用Login,因为我以前使用过它。 无论如何我在尝试登录时遇到错误
FROM子句中的语法错误
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息: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;
}
答案 0 :(得分:1)
试试这个
sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
" Where UserName like '" + UserName+"' "+
" and UserPassword like '"+UserPassword+"'",sqlConn);
答案 1 :(得分:0)
我认为您忘记在变量用户名之前添加单引号('),请尝试以下 -
sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
" Where UserName like '" + UserName+"' "+
" and UserPassword like '"+UserPassword+"'",sqlConn);
答案 2 :(得分:0)
在TableName userinfo
和Where
之间留出空格,并在其他keywords
之间提供空格
sqlDA=new OleDbDataAdapter("Select AccessLevel from UserInfo"+
" Where UserName like '" + UserName+"' "+
" and UserPassword like '"+UserPassword+"'",sqlConn);
答案 3 :(得分:0)
代码的第二行缺少单引号。
答案 4 :(得分:-1)
确保FROM
和WHERE
条款中的所有撇号和空格排列正确。
var sqlDA = new OleDbDataAdapter("Select AccessLevel from UserInfo" +
" Where UserName like '" + UserName + "'"+
" and UserPassword like '" + UserPassword + "'", sqlConn);
如果您不确定此声明,可以检查MS Access Query Builder。
如果需要,请在%
子句中添加LIKE
以扩大搜索条件。