- 題名: C#のプログラムの質問
- 日時: 2003/08/27 13:26:47
- ID: 469
- この記事の返信元:
- (なし)
- この記事への返信:
- [508] Re[1]: C#のプログラムの質問2003/08/29 16:05:47
- ツリーを表示
■No469に返信(AKATSUKIさんの記事) > 『レコードを抽出してユーザIDとパスワードのレコード > が一致したならMessageBoxに[OK]を表示』というやり方でやりたいんですが・・・。 .ToString()で比較しているのは絶対変。 DataViewを2つ使いまわしているのも複雑にしているだけ。 (同じパスワードの人がいたら正しく認証できないなどバグの温床) dataView1.RowFilter = "ユーザID='" + textBox1.Text + "' and パスワード='" + textBox2.Text + "'"; if (dataView1.Count == 1) { MessageBox.Show("OK"); } で、どうでしょうか? ただ、、、 ユーザチェックするのに、DataAdapter,DataSet,DataView を総動員するのも、何か大層過ぎる印象を受けます。 Connectionだけで、以下のようにコーディングすることも出来ます。 private bool IsCertificatedUser(string userID, string pass) { string sql = "select count(*) from T_パスワード" + " where ユーザID ='%USERID%' and パスワード = '%PASS%'"; sql = sql.Replace("%USERID%", userID); sql = sql.Replace("%PASS%", pass); OleDbCommand cmd = m_oleDbConnection.CreateCommand(); cmd.CommandText = sql; return ((int)cmd.ExecuteScalar() == 1); }
・データ Access2000
ユーザID | パスワード
---------------------
1000 | 0001
1001 | 0002
1002 | 0002
1003 | 0004
・入力したユーザIDとパスワードが一致したならMessageBoxに[OK]を表示
それ以外は[入力が違います]を表示するにはどうしたらいいのでしょうか?
textBox1にユーザID
textBox2にパスワードを入力するようにしてあります。
『レコードを抽出してユーザIDとパスワードのレコード
が一致したならMessageBoxに[OK]を表示』というやり方でやりたいんですが・・・。
自分で↓のように作ってみたんですがうまくいかなくて・・。
誰か教えてくれませんか?
=========ソース==========================================================
//実行ボタン
private void button1_Click(object sender, System.EventArgs e)
{
//レコードを抽出
dataView1.RowFilter = "ユーザID='" + textBox1.Text + "'";
dataView2.RowFilter = "パスワード='" + textBox2.Text + "'";
if(textBox1.Text == "" || textBox2.Text == "")
{
MessageBox.Show("入力が違います1");
}
else
{
if(dataView1.ToString() == dataView2.ToString() )
{
MessageBox.Show("OK");
}
else
{
MessageBox.Show("入力が違います2");
}
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
odaPas.Fill(pasSet1,"T_パスワード"); //データを読み込む
}
====================================================================