質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

解決済

C#でのデータベースを使用したログイン認証処理

mogumogu
mogumogu

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

2回答

0評価

1クリップ

12261閲覧

投稿2016/09/13 04:13

編集2022/01/12 10:58

C#初心者です。

ログインフォームに入力された氏名とパスワードをテーブルMSTAFFから検索し、
合致していればログインできる仕組みを作っています。
SQLサーバーには接続できており、Console.Readline()までは処理が流れているのは確認できています。
その後の、フォーム入力データのthis.loginForm.UserName、this.loginForm.Passwordとデータベースとの比較を
どのように書いたら良いかわかりません。

ご教示のほどよろしくお願いいたします。

C#

using System; using System\.Collections\.Generic; using System\.Data; using System\.Data\.SqlClient; using System\.Linq; using System\.Web; using System\.Web\.UI; using System\.Web\.UI\.WebControls; namespace LoginTest { public partial class login : System\.Web\.UI\.Page { protected void Page_Load\(object sender, EventArgs e\) { } protected void LoginForm_Authenticate\(object sender, AuthenticateEventArgs e\) { try { //データベース接続を確立する。 string sConnectionString; sConnectionString = @"Data Source=\(localdb\)\\ProjectsV13;Initial Catalog=ProjectManagement;Integrated Security=True"; SqlConnection objConn = new SqlConnection\(sConnectionString\); objConn\.Open\(\); //データベースとDatasetオブジェクトの間のリンクを表すDataAdapterを作成。 SqlDataAdapter MS = new SqlDataAdapter\("SELECT NAME, PWD FROM MSTAFF", objConn\); //DataSetオブジェクトを宣言してインスタンスを作成。 DataSet PM = new DataSet\("ProjectManagement"\); //DataSetにデータを読み込む MS\.FillSchema\(PM, SchemaType\.Source, "MSTAFF"\); MS\.Fill\(PM, "MSTAFF"\); MS\.MissingSchemaAction = MissingSchemaAction\.AddWithKey; MS\.Fill\(PM, "MSTAFF"\); DataTable dt; dt = PM\.Tables\["MSTAFF"\]; //DataTableのRowsコレクションに含まれるすべてのDataRowオブジェクトを読み込み。 foreach \(DataRow drCurrent in dt\.Rows\) { Console\.WriteLine\( drCurrent\["NAME"\]\.ToString\(\), drCurrent\["PWD"\]\.ToString\(\)\); } Console\.ReadLine\(\); //入力されたユーザー名とパスワードが、データベースのNAMEとPWDと一致した場合のみ if \(this\.loginForm\.UserName == dt\.Rows\[0\]\.ToString\(\) && this\.loginForm\.Password == dt\.Rows\[1\]\.ToString\(\)\) { //初期画面に遷移 e\.Authenticated = true; } else { e\.Authenticated = false; } objConn\.Close\(\); } catch \(SqlException ex\) { Console\.WriteLine\(ex\.Message\); } } } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。