2015-03-22 3 views
-3

я получил такую ​​ошибку:, как иметь дело с такого рода ошибки

Additional information: Syntax error (missing operator) in query expression 'acount no = no.,'

... каждый раз, когда я снять или депозит что-то

string sql = default(string); 
DataTable Log_in = new DataTable(); 

con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\anaabenoja\Documents\sample connection.accdb"; 
sql = "SELECT * FROM Acc_info where account_no = " + lblaccno.Text + ""; 

cmd.Connection = con; 
cmd.CommandText = sql; 
da.SelectCommand = cmd; 
**da.Fill(Log_in);** 
if (Log_in.Rows.Count > 0) 
{ 
    .... 
+1

ошибка дает вам всю информацию, которую мы имеем, тоже, так что начать его интерпретации. –

+0

Кроме того, проблема не связана, но у вас есть опечатка в 'Insuffiecient' (sic). –

ответ

0

Сообщение об ошибке абсолютно дает вам то, что вам нужно :

Additional information: Syntax error (missing operator) in query expression 'acount no = no.,'

Если вы посмотрите на ваш запрос, вы обнаружите ошибку:

sql = "SELECT * FROM Acc_info where account_no = " + lblaccno.Text + ""; 

Вы не помещайте фактическое значение ввода некоторых TextBox «s в запрос, но Text -value из этикетки (который содержит строку no.).

Так что если вы измените запрос следующим образом он должен работать (если у вас есть TextBox txtaccno):

sql = "SELECT * FROM Acc_info WHERE account_no = " + txtaccno.Text; 

Кроме иметь в виду, что ваш код ужасно склонен к SQL впрыск. Если злоумышленник помещает в ваш TextBox что-то вроде 0; DELETE FROM Acc_info;, у вас возникнет проблема ... Чтобы предотвратить эти атаки, вы можете использовать parameterized queries.

enter image description here

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