SQL Server Management Studioを使用して、アプリケーション用の適切なログインフォームを作成しようとしています。私はそれを3層にすることになっています。
私は両方とも正しいと思います。私のメインフォームには2つのtxtboxとボタンがありますが、ユーザー名とpwを入力すると、データベースで両方が正しいかどうかを確認するために、相互に接続する方法がわかりません。 。
これまでのところ私は得ました:
public class UsersDB
{
public static Users GetUsers(string username, string password)
{
SqlConnection conn = QuizzesDB.GetConnection();
Users user = new Users();
string selectStatement =
"SElECT * " +
"FROM Users" +
"WHERE User_Name = @User_Name" +
"AND Password = @Password";
SqlCommand selectCommand = new SqlCommand(selectStatement, conn);
selectCommand.Parameters.AddWithValue("@User_Name", username);
selectCommand.Parameters.AddWithValue("@Password", password);
try
{
conn.Open();
SqlDataReader reader = selectCommand.ExecuteReader();
while (reader.Read())
{
user.username = reader["User_Name"].ToString();
user.password = reader["Password"].ToString();
}
reader.Close();
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
return user;
}
}
データベースから情報を取得するクラス。
2番目のクラスは
public class Users
{
private string cUsername;
private string cPassword;
public Users() { }
public string username
{
get { return cUsername; }
set { cUsername = value; }
}
public string password
{
get { return cPassword; }
set { cPassword = value; }
}
}
私はこのようなことを試みました:しかし、私は常にエラー「'='の近くの構文が正しくありません」を受け取ります。
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txtUsername.Text;
string password = txtPassword.Text;
Users user = new Users();
user = UsersDB.GetUsers(userName, password);
try
{
user = UsersDB.GetUsers(userName, password);
if (user == null)
{
MessageBox.Show("wrong username or password", "Login");
}
else
{
MessageBox.Show("login succesvol", "Login");
}
}
catch (Exception ex){
throw ex;
}
}