-1

ユーザーデータベースを持つアプリケーションを作成していますが、入力および登録フォーム中にユーザーがデータベースに存在するかどうかを確認する最良の方法は何だろうと思っていました。users というデータベースがあります。id、userName、Password の 3 つの列で構成されます。

データベースに挿入するための私のコードは次のとおりです。

 SqlConnection con = new SqlConnection("Data Source=HRC0;Initial Catalog=users;Integrated Security=True");
 con.Open();
 SqlCommand sc = new SqlCommand("insert into users (userName, password) values('" + korisnik.Text + "','" + pass.Text + "');", con);
 int o = sc.ExecuteNonQuery();
 MessageBox.Show(o + " Ubačeni ste u bazu korisnika!");
 con.Close();
 this.Hide();
 new Form1().Show();

Korisnik はユーザー名を入力するテキストボックスの名前で、pass はパスワードを入力するテキストボックスです。メッセージボックスには、あなたがユーザーベースに追加されたことが示されています。

4

2 に答える 2

0

this query returns true if user exists and false if not (assume usernames are unique)

select 
  cast ((case 
           when exists (select null from Users where UserName = @username) 
           then 1 else 0 end) as bit)

To call it use this code

cmd.Text = "..text above.."
cmd.Parameters.Add("@username", SqlDbType.nvarchar).Value = korisnik.Text;
var result = (bool)cmd.ExecuteNonQuery();

Never concatenate your query the way you showed in question, it leads to sql injections.

于 2013-06-02T17:35:39.913 に答える