-1

C# で SQL データベース プロジェクトに取り組んでいます。誰かがアプリケーションを起動したときに表示されるログインフォームを作成しようとしています。

データベースへの接続が確立されますが、最初のフォームに正しいユーザー名とパスワードを入力してから、残りのフォームを表示する必要があります。

2 つのテキスト ボックス、ボタン txtusername と txtpassword、およびボタン ログインを作成しました。

これが私のSQLコマンドです:

SqlCommand command = new SqlCommand("SELECT * FROM tblUsers WHERE Username ='" + txtUsername + "' AND Password = '" + txtPassword + "'", Program.cs);

SQLコマンドがユーザー名とパスワードがユーザーテーブルに保存されていることを意味する結果を生成し、trueまたは何かを返す場合にラベルに表示する方法を探しています。これに対するより効率的または効果的な方法があれば、私にも知らせてください:)。

4

3 に答える 3

1

文字列を連結してコマンド テキストを作成しないでください。を使用しSqlParameterます。それは、最初のものを最初に置くことです。

また、.net でデータ アクセスがどのように機能するかをまったく (またはほとんど) 理解していないように思えます。そのため、Microsoft の「Accessing Data with .NET Framework 4」など、このトピックに関する本を読むことをお勧めします。

于 2012-07-25T10:46:50.320 に答える
0

このコードはプロジェクトの脆弱性 です 詳細については、これを参照してください

于 2012-07-26T11:05:53.653 に答える
0

ログインページ b の強力なテキスト*コード

tn_click() //button click event 
{ 
    Sqlconnection con=new
    sqlconnection(Strcon); 

    String sqlquery="select usrname,password from loginpage where username='textname.text' and password='textpassword.text'"; 

    Sqlcommand sqlcom=new Sqlcommand(Sqlquery,con); 
    con.open(); 

    Sqldatareader dr;
    dr=sqlcomm.executereader(commandbehavior close connection);

    if(dr.read()) 
    {  
        session["un"]=dr["username"].Tostring();
        session["pwd"]=dr["userpassword"].Tostring();

        if(dr["userpassword"].Tostring()!=null); 
            respone.redirect("userdetail.aspx"); 
    } 
    else 
    { 
        respone.redirect("login.aspx"); 
    } 
    else 
    {
        lblmsg.text="invalid user"; 
    }
}


于 2013-02-21T10:52:18.963 に答える