2016-10-07 5 views
0

первого шанса исключение типа «System.Data.SqlClient.SqlException» произошло в System.Data.dllSystem.Data.SqlClient.SqlException Ошибка при нажатии button1

Дополнительная информация: Invalid имя объекта «Войти».

Вот код:

public partial class Form1 : MetroFramework.Forms.MetroForm 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Igurek\Documents\Database.mdf;Integrated Security=True;Connect Timeout=30"); 
    private void metroButton1_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 

    private void metroButton2_Click(object sender, EventArgs e) 
    { 
     SqlDataAdapter sdf = new SqlDataAdapter("Select Count(*) From Login where Username='" + metroTextBox1.Text + "' and Password='" + metroTextBox2.Text + "'", con); 
     DataTable dt = new DataTable(); 


     sdf.Fill(dt); // <--------- Here's the exception 
     if (dt.Rows.Count == 1) 
     { 
      Form1 f1 = new Form1(); 
      f1.Show(); 

     } 
     else 
     { 
      MessageBox.Show("Sprawdz Nazwe i Haslo"); 
     } 
    } 
} 

Скриншот:

image description

ответ

0

сообщение довольно ясно: у вас нет объекта (таблица, вид) в базе данных с именем Login. Ваш запрос пытается выбрать из этого объекта.

Select Count(*) From Login where... 

Чем больше и более важным вопросом является то, что вы открываете себя для инъекции SQL атаки, потому что вы конкатенации строк вместе, чтобы создать запрос. Вы должны использовать параметры вместо этого.

SqlDataAdapter sdf = new SqlDataAdapter(
    "Select Count(*) From Login where [email protected] and [email protected]", con); 

command.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = metroTextBox1.Text; 
command.Parameters.Add("@Password", SqlDbType.NVarChar).Value = metroTextBox2.Text; 
+0

вау спасибо за сделать усилие. im blind, и я не знаю, как изменить имя таблицы от «Table» до «Login» idk. brb –

+0

Спасибо, я был слепой или пьяный (ха-ха) при добавлении вопроса. Я исправил его, удалив старые таблицы и сделав новый с именем «Вход», –

-1

пытаются установить имя для графа, как это:

Select Count(*) as Nb From Login 
Смежные вопросы