私はデータベースに完全に新しいものが必要です。サーバーとデータベースを作成しました。このコードは、メインフォームへのアクセスを与える前にデータベースから検証するように、 がこのエラーを出しています:System.Data.SqlClient.SqlException: '' tbl_LoginInfo 'の近くの構文が正しくありません。System.Data.SqlClient.SqlException: 'tbl_LoginInfoの近くの構文が正しくありません。(自分のコードに固有)
私のコード:
private void Login_Button_Click(object sender, EventArgs e)
{
SqlConnection newconnect = new SqlConnection(@"Data Source=DESKTOP-3DH5S38\HR_SERVER;Initial Catalog=BMS_PRO_DB;Integrated Security=True");
string query = "Select * tbl_LoginInfo where Username = '" + UserName_Textbox.Text.Trim()+ "'and Password = "+Password_Textbox.Text.Trim();
SqlDataAdapter dataAdapter = new SqlDataAdapter(query, newconnect);
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);
if (dataTable.Rows.Count==1)
{
this.Hide();
MainForm mainForm = new MainForm();
mainForm.ShowDialog();
this.Close();
}
else
{
MessageBox.Show("Check Username/Password !");
}
}
あなたはSQLの権利の 'から'を忘れました;-)? – Reno
パスワードの前にスペースを入れるだけでなく、おそらく一重引用符を使用することもあります。士気。文字列を連結してSQLコマンドを作成するのではなく、パラメータ化されたクエリを使用する – Steve
パラメータ化されたクエリだけで簡単な入力ミスを避けることができますが、SQLインジェクションの深刻な問題を回避できます。有名な[Bobby Tables](https://stackoverflow.com/質問/ 332365/how-does-the-sql-injection-the-bobby-tables-xkcd-comic-work) – Steve