2017-08-27 3 views
-1

これはユーザー名またはパスワードがすでに存在するかどうかを確認する必要があるプログラムですが、別のステートメントを使用して検証を行ってもデータベースを経由します。 ELSE文が例えば内部のSQLステートメント( "@ユーザー名" == _f3txtuser.text)を有するかどうかはどのように使うべきC#を使用したSQL ELSEステートメントの使用#

private void _F3Register_Click(object sender, EventArgs e) 
    { 


     if (_F3txtUser.Text == "" || _F3txtPass.Text == "") 
      MessageBox.Show("Please Fill The Missing Informations"); 
     else if (_F3txtPass.Text != _F3txtCheckPass.Text) 
      MessageBox.Show("Password Do Not Match"); 

     else if (("@USERNAME" == _F3txtUser) || ("@PASSWORD" == _F3txtPass)) 
      MessageBox.Show("Username or Password already Exists"); 

     else 
     { 
      using (SqlConnection _sqlcon = new SqlConnection(connectionstring)) //Database Connection 
      { 
       _sqlcon.Open(); 


       String query2 = "Insert into LOGINFORM(USERNAME, PASSWORD, FNAME, LNAME, AGE) values(@USERNAME, @PASSWORD, @FNAME, @LNAME, @AGE)"; // Database Command for Insertion 

       using (SqlCommand _sqlcmd = new SqlCommand(query2, _sqlcon)) //using database connection and command in one method 
       { 
        _sqlcmd.Parameters.AddWithValue("@USERNAME", _F3txtUser.Text.Trim()); 
        _sqlcmd.Parameters.AddWithValue("@PASSWORD", _F3txtPass.Text.Trim()); 
        _sqlcmd.Parameters.AddWithValue("@FNAME", _txtFN.Text.Trim()); 
        _sqlcmd.Parameters.AddWithValue("@LNAME", _txtLN.Text.Trim()); 
        _sqlcmd.Parameters.AddWithValue("@AGE", _txtAge.Text.Trim()); 
        _sqlcmd.ExecuteNonQuery(); 
       } 
       MessageBox.Show("Registration Successfull"); 
       Clear(); 

      } 
     } 
    } 
    void Clear() 
    { 
     _F3txtUser.Clear(); 
     _F3txtPass.Clear(); 
     _txtFN.Clear(); 
     _txtLN.Clear(); 
     _txtAge.Clear(); 
     _F3txtCheckPass.Clear(); 
    } 
} 

}

+1

コードはここにあるべきテキスト –

+0

としてあなたがチェックアウトする必要があります[W缶e既にAddWithValue()を使用して停止しますか?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) '.AddWithValue ) ' - それは予期せぬ驚くべき結果につながる可能性があります... –

答えて

1

あなたは以下のような方法で持つことができます。

private bool UserNameOrPasswordExists(string userName, string password) 
    { 
     using (SqlConnection conn = new SqlConnection("your connection string")) 
     { 
      conn.Open(); 
      var query = "Select * from LOGINFORM where USERNAME='@USERNAME' or PASSWORD='@PASSWORD'"; 
      using (SqlCommand comm = new SqlCommand(query, conn)) 
      { 
       comm.Parameters.AddWithValue("@USERNAME", userName); 
       comm.Parameters.AddWithValue("@PASSWORD", password); 
       var result = comm.ExecuteNonQuery(); 
       return result > 0; 
      } 
     } 
    } 

は、この他にあれば第三に置き換える:

else if (UserNameOrPasswordExists(_F3txtUser, _F3txtPass)) 
     MessageBox.Show("Username or Password already Exists"); 
+0

"あなたの接続文字列 "とは何を意味するのですか? – Gab

+0

"あなたの接続文字列 "はあなたが使用した接続文字列変数を意味します:" connectionstring " – Tanjeer

関連する問題