Table
これがテーブルの実際の名前であると仮定して、これを試してください
String strng = " SELECT * FROM [Table] "
+ " WHERE Username = '" + txtUsername.Text + "' AND "
+ " Password = '" + txtPassword.Text + "'";
[]
aroundに注意してください。これは予約語であるTable
ため、エスケープを目的としています。Table
これは SQL クエリを作成するための正しいアプローチではないという既存のコメントに同意します。SQL インジェクション攻撃にさらされており、読みやすさの観点からも悪化しています。代わりにパラメーターを使用する必要があります。
String strng = @"
SELECT * FROM [Table]
WHERE Username = @UserName AND
Password = @Password";
...
command.Parameters.AddWithValue("@UserName", txtUsername.Text);
command.Parameters.AddWithValue("@Password", txtPassword.Text);
さらに 2 つの点を考慮する必要があります。
- ユーザー入力をエスケープしてXSS 攻撃を回避する
- 平文ではなく、暗号化されたパスワードをデータベースに保存する