C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

c# db接続して一致チェック

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■97781 / inTopicNo.1)  c# db接続して一致チェック
  
□投稿者/ aa (1回)-(2021/07/13(Tue) 16:40:01)

分類:[.NET 全般] 

c#でdbを接続して、dbにidが存在してpwが間違っているとき「pwが間違っている」エラー文を出すログイン画面を作成中です。一行目のdデータのidを入力した際は、「pwが間違っている」と正しくでるのですが、2行目のidをいれると、「idが存在しません」と出てしまい困っています。


          while (dataReader.Read())
{
if ((int)dataReader[0] == ID && (string)dataReader[8] != PW)
{
errorms1.Text = "パスワードが間違っています";
topMessage.Visible = true;
return;

}


if ((int)dataReader[0] == ID && (string)dataReader[8] == PW)
{
Session["member"] = true;


Session["id"] = TextBox1.Text;
Session["pw"] = TextBox2.Text;
Session["lastName"] = (string)dataReader[1];
Session["firstName"] = (string)dataReader[2];
Session["age"] = (int)dataReader[3];
Session["mail"] = (string)dataReader[4];
Session["address1"] = (string)dataReader[5];
Session["address2"] = (string)dataReader[6];
Session["address3"] = (string)dataReader[7];
Session["course"] = (int)dataReader[9];
Session["pay"] = (int)dataReader[10];

errorms.Text = "";
errorms1.Text = "";
topMessage.Visible = false;
connection.Close();
Server.Transfer("../02top/02top.aspx");

}

else
{
errorms.Text = "IDが存在しません";
topMessage.Visible = true;


}

}
引用返信 編集キー/
■97782 / inTopicNo.2)  Re[1]: c# db接続して一致チェック
□投稿者/ WebSurfer (2292回)-(2021/07/13(Tue) 17:00:30)
No97781 (aa さん) に返信

ASP.NET Web Forms アプリの話ですよね。

ASP.NET のフレームワークに備わっている ASP.NET Identity を使うことをお勧めします。

VS2019 のテンプレートで認証に「個別のユーザーアカウント」を選んでプロジェクトを作ると
生成されるコードにはユーザー認証に必要な機能および登録・ログインなどのページが自動生成
されます。

アプリを実行してユーザー登録を行うと Entity Framework Code First の機能を利用して LocalDB
によって自動的に SQL Server 用の DB が生成され、それにユーザー情報が保持されます。

何故独自実装しようとしているのか分かりませんが、素人が Web アプリの認証システムを独自実装
しても絶対に使い物にはなりません。

質問に書いてあることができたとしても、少なくとも Web アプリの認証システムの話としては何一
つ役に立つようなことはないと思います。

しかも質問のコードはメチャクチャで他人に見てもらえるレベルに達してないし、質問のコード
ベースに Q&A をしてもお互い時間と労力の無駄になるだけだと思います。

ASP.NET Identity はやる気なしで、どうしても質問に書いてある独自実装の話しか受け入れられ
ないならその旨返答ください。
引用返信 編集キー/
■97783 / inTopicNo.3)  Re[2]: c# db接続して一致チェック
□投稿者/ aa (3回)-(2021/07/13(Tue) 17:09:38)
No97782 (WebSurfer さん) に返信
> ■No97781 (aa さん) に返信
>
>>
> ASP.NET Identity はやる気なしで、どうしても質問に書いてある独自実装の話しか受け入れられ
> ないならその旨返答ください。
→会社の方針上です
引用返信 編集キー/
■97784 / inTopicNo.4)  Re[3]: c# db接続して一致チェック
□投稿者/ WebSurfer (2293回)-(2021/07/13(Tue) 17:22:56)
No97783 (aa さん) に返信

>>ASP.NET Identity はやる気なしで、どうしても質問に書いてある独自実装の話しか受け入れられ
>>ないならその旨返答ください。
> →会社の方針上です

組織の業務として ASP.NET Web アプリ開発の一環としてやっているなら、組織の上司・先輩・同僚
の方などに聞いて、組織内で解決するのが筋では?

製品品質を担保するために業務にかかわる要因の教育をするのは組織の義務です。逆に言えば、それ
ができない組織は製品品質を担保できないということになりますから。

業務でなく研修の課題とかなら、講師に聞くのが筋です。
引用返信 編集キー/
■97785 / inTopicNo.5)  Re[1]: c# db接続して一致チェック
□投稿者/ furu (120回)-(2021/07/13(Tue) 17:38:55)
No97781 (aa さん) に返信
> 2行目のidをいれると、「idが存在しません」と出てしまい困っています。
そうなりますね。
デバッグでステップ実行すれば、なんでそうなるかわかると思います。
引用返信 編集キー/
■97786 / inTopicNo.6)  Re[2]: c# db接続して一致チェック
□投稿者/ aa (4回)-(2021/07/13(Tue) 17:51:05)
No97785 (furu さん) に返信
> ■No97781 (aa さん) に返信
>>2行目のidをいれると、「idが存在しません」と出てしまい困っています。
> そうなりますね。
> デバッグでステップ実行すれば、なんでそうなるかわかると思います。
デバック開始すると設定してあるクロームに飛んでしまうのですが、ステップ実行はどうやるのでしょうか?
引用返信 編集キー/
■97787 / inTopicNo.7)  Re[4]: c# db接続して一致チェック
□投稿者/ aa (5回)-(2021/07/13(Tue) 17:52:22)
No97784 (WebSurfer さん) に返信
> ■No97783 (aa さん) に返信
>
> >>ASP.NET Identity はやる気なしで、どうしても質問に書いてある独自実装の話しか受け入れられ
> >>ないならその旨返答ください。
>>→会社の方針上です
>
> 組織の業務として ASP.NET Web アプリ開発の一環としてやっているなら、組織の上司・先輩・同僚
> の方などに聞いて、組織内で解決するのが筋では?
>
> 製品品質を担保するために業務にかかわる要因の教育をするのは組織の義務です。逆に言えば、それ
> ができない組織は製品品質を担保できないということになりますから。
>
> 業務でなく研修の課題とかなら、講師に聞くのが筋です。
結構です
引用返信 編集キー/
■97788 / inTopicNo.8)  Re[3]: c# db接続して一致チェック
□投稿者/ furu (121回)-(2021/07/13(Tue) 18:30:01)
No97786 (aa さん) に返信
> デバック開始すると設定してあるクロームに飛んでしまうのですが、ステップ実行はどうやるのでしょうか?
ASP.NETってやったことないんで何なんですが

while (dataReader.Read())にブレークポイント置いてデバッグ開始します。
そこで止まったらF10やらF11でステップ実行して
変数の値や遷移を確認していくことになります。

でも、これらのことやったことないとなると
かなり苦労してデバッグしてますね。
引用返信 編集キー/
■97790 / inTopicNo.9)  Re[5]: c# db接続して一致チェック
□投稿者/ WebSurfer (2294回)-(2021/07/13(Tue) 22:06:06)
No97787 (aa さん) に返信

http://bbs.wankuma.com/index.cgi?mode=al2&namber=97754 のココカラファイン氏とか
Teratail のスレッド https://teratail.com/questions/347920 の質問者と同一人物で
すかね。

> →会社の方針上です

というのも嘘では? 

もしホントなら、

> pwが間違っているとき「pwが間違っている」エラー文を出す

なんてことを「会社の方針」としてあなたに指示するような会社は、情報漏洩とかの被害が
私に及ぶ前に業界から排除されてほしいと切に願う次第です。
引用返信 編集キー/
■97801 / inTopicNo.10)  Re[4]: c# db接続して一致チェック
□投稿者/ PATIO (5回)-(2021/07/14(Wed) 15:29:17)
No97788 (furu さん) に返信
> ■No97786 (aa さん) に返信
>>デバック開始すると設定してあるクロームに飛んでしまうのですが、ステップ実行はどうやるのでしょうか?
> ASP.NETってやったことないんで何なんですが
>
> while (dataReader.Read())にブレークポイント置いてデバッグ開始します。
> そこで止まったらF10やらF11でステップ実行して
> 変数の値や遷移を確認していくことになります。
>
> でも、これらのことやったことないとなると
> かなり苦労してデバッグしてますね。

確かにデバッガーを使って動かしてみるのが簡単な解決法だと思うのですが、
記載されているコードを机上で確認してもわかるのではないかと思います。
少なくとも各ステップの動作をきちんと把握できてれば、
どうしてそういう結果になるのかはわかるのではないかと。
もし、さっぱりわからないという話であるのならC#の文法から勉強されるべきだと思います。

引用返信 編集キー/
■97807 / inTopicNo.11)  Re[5]: c# db接続して一致チェック
□投稿者/ サバ (1回)-(2021/07/15(Thu) 09:16:38)
うぜえやつがいるな
ウェブサーファーがこの掲示板から排除されて欲しいわ
引用返信 編集キー/
■97808 / inTopicNo.12)  Re[6]: c# db接続して一致チェック
□投稿者/ サバ (2回)-(2021/07/15(Thu) 09:26:20)
idとpwが一致したときにループを抜ければ良い気がするけどね、違うかな?
引用返信 編集キー/
■97827 / inTopicNo.13)  Re[7]: c# db接続して一致チェック
□投稿者/ PATIO (8回)-(2021/07/20(Tue) 17:05:16)
2021/07/20(Tue) 17:07:26 編集(投稿者)

No97808 (サバ さん) に返信
> idとpwが一致したときにループを抜ければ良い気がするけどね、違うかな?

というか、コード全体の流れを見直した方が良いと思います。
dataReader.Read()で順番に読み込んでいる事を念頭に置いて
判断文をどういう風に使えば目的の動きになるのかをちゃんと考えるべきです。
二行目のIDを引き渡した時に自分が書いたコードがどのように動くのかをもう一度見直す事をお勧めします。

机上で紙に書くでよいので各変数の中身がどうなるのかを追いかけてみてください。
プログラミングをする上でこの行為は大事です。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ