2016-06-10 9 views
3

Попытка работать над этим на некоторое время теперь, я вернулся и форт, имея мою собственную страницу входа, не используя инструмент входа в систему, но я предпочитаю использовать Login только потому, что я использовал его раньше. В любом случае я получаю сообщение об ошибке при попытке войти вОшибка синтаксиса в FROM close?

Syntax error in FROM clause

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Syntax error in FROM clause.

Источник ошибки:

является якобы 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; 

    } 

ответ

1

Попробуйте

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

Здравствуйте! Спасибо за быстрый ответ! но в чем разница между этим кодом и тем, который я предоставил? Я скопировал и вставлял то, что вы отправили, но не повезло :( –

+0

@AlexLozano просто одна ошибка, как имя таблицы, и где предложение не содержит пробела, поэтому я просто добавляю одно место в where where. –

+0

Спасибо, это работает! теперь валидация логина. –

0

Я думаю, что вы забыли поставить одинарные кавычки (') перед переменным Именем пользователя, попробуйте цены ниже

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

Привет, Алекс. Разница, которую вы ищете, это цитата (') и пространство при объединении строки sql. –

0

Дайте пробел между TableName userinfo и Where также укажите пробелы между другими keywords

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

Убедитесь, что все апострофа и пространства расположены должным образом на FROM и WHERE пункта.

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

Вы можете проверить конструктор запросов MS Access, если вы не уверены в этом утверждении.

Если вы хотите, добавьте % в пункт назначения LIKE, чтобы расширить критерии поиска.

0

Одиночная цитата отсутствует во второй строке вашего кода.

Смежные вопросы