2014-10-25 5 views
-3

У меня есть следующий код для проверки пользователя:«Произошла ошибка при анализе запроса».

private void button1_Click(object sender, EventArgs e) 
    { 

     string ss = "SElECT * FROM 123 WHERE [email protected]"; 
     using (SqlCeConnection cn = new SqlCeConnection(@"Data Source=|DataDirectory|\123.sdf"))  
     { 
      try 
      { 
       SqlCeCommand selectCommand = new SqlCeCommand(ss, cn); 
       cn.Open(); 

       selectCommand.Parameters.AddWithValue("@USERNAME", textBox1.Text); 

       int result = (int) selectCommand.ExecuteScalar(); 
       if (result > 0) 
        MessageBox.Show("logged in"); 
       else 
        MessageBox.Show("user not found"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString()); 
      } 
      finally 
      { 
       cn.Close(); 
      } 
     }    
    } 

Я получаю эту ошибку, когда я запускаю его:

Error

Почему я получаю эту ошибку?

ответ

1

изменить SQL заявление, как показано ниже

string ss = "SElECT Count(*) FROM [123] WHERE [email protected]"; 

ExecuteScalar даст вам значение первой строки, первый столбец. если это не целочисленное значение, вы получите исключение при литье в int. включите Count(*) в свой sql, и он даст вам количество записей, которые соответствуют вашему состоянию, а также кастинг будет работать. Обратите внимание, что я добавил [] для имени таблицы.

+0

ЕСЛИ я хочу сделать то же самое но с другим запросом вроде этого: https://www.dropbox.com/s/d67yetknugj663i/qup.PNG?dl=0 – kipo

0

FROM 123 является неправильным. Здесь вам нужно имя таблицы.

1
string ss = "SElECT * FROM [123] WHERE [email protected]"; 
+0

сейчас у меня есть эта ошибка https://www.dropbox.com/s/xk7mmbcqob762fk/%5B%5D.PNG?dl=0 – kipo

+0

@kipo спрашивайте один за другим вопрос. Venkat ответить на ваш вопрос по другим проблемам добавить новый вопрос. – mybirthname

+0

@kipo Хорошо, что вы ожидаете, если вы выполните запрос, который не возвращает 'int', и попытайтесь передать его в' int'? Обратите внимание на то, что ваша система говорит вам. Исправьте его, выполнив любой тип запроса. – hvd

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