「ログイン」ボタンがクリックされたときに、テーブル内の列を繰り返し処理し、一致するかどうかを確認したいと思います。どうすればこれを行うことができますか?データベースに接続しましたが、データベースからの読み取りとデータベースへの書き込みは問題ありません。データベースをどのように反復するかわかりません。
PS私はc#とビジュアルスタジオの両方が初めてです。私は Java から来たので、C# にはそれほど問題はありませんが、Visual Studio を理解するのに苦労しています。
「ログイン」ボタンがクリックされたときに、テーブル内の列を繰り返し処理し、一致するかどうかを確認したいと思います。どうすればこれを行うことができますか?データベースに接続しましたが、データベースからの読み取りとデータベースへの書き込みは問題ありません。データベースをどのように反復するかわかりません。
PS私はc#とビジュアルスタジオの両方が初めてです。私は Java から来たので、C# にはそれほど問題はありませんが、Visual Studio を理解するのに苦労しています。
これは簡単です。
SqlConnection myConnection = new SqlConnection(@"Server = (Local); Integrated Security = True;" + "Database = insertDataBaseName"); // Assuming (Local)
myConnection.Open();
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.CommandText = ("SELECT UserName, Password,from Login"); // Where Login is your table . UserName and Password Columns
SqlDataReader myReader = myCommand.ExecuteReader();
bool login = false;
while (myReader.Read())
{
if (userNameBox.Text.CompareTo(myReader["UserName"].ToString()) == 0 && passwordBox.Text.CompareTo(myReader["Password"].ToString()) == 0) // A little messy but does the job to compare your infos assuming your using a textbox for username and password
{
login = true;
}
}
if (login)
{
//Your're in.
}
else
{
MessageBox.Show("Invalid UserName or Password", "Access Denied"); // Error message
}
myReader.Close();
myConnection.Close(); // Just close everything
お役に立てれば。このコード部分について質問がある場合は、遠慮なくお問い合わせください。
SQLでは、このようなものが役立ちます
Select top(1) from Users where Id = @Id
またはlinqで
var user = (from u in users
where u.Id == id
select u).SingleOrDefault();
ユーザー名とパスワードの検証を確認している場合は、すべてのユーザー レコードを取得して反復処理をループするべきではないと思います。100000 人のユーザー登録があった場合はどうなりますか? あなたは本当に100000回繰り返したいですか?本当に ?
おそらく、探している特定のレコードを照会する必要があります
このようなもの
SELECT TOP 1 UserID,FIRSTNAME,LASTNAME,HASHED_PASSWORD,SALT WHERE USERNAME='kristy'
そのクエリをデータベースで再度実行し、レコードが存在するかどうかを確認します。レコードが 1 つ存在する場合は、所有しているデータでパスワードを検証できます。