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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1259閲覧

WEBフォーム作成中で配列について

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/11/29 03:46

編集2018/11/29 03:48

ビジュアルスタジオでWEBページを作成していて
1ページ目がログイン画面でテキストボックス2つ(IDとPW)とログインボタンを設置しています。
テキストボックスに入力された内容でIDとPWをSQLから情報を取得して、
同一ログイン時のIDとPWをクラスで作成した配列に格納して
遷移されたページに情報を受け渡すというもので、
配列を格納までができたのですが遷移後のページへの渡し方、書き方がわかりません。
よろしければご教授お願いします。

C#

1//配列のクラス 2public class Login 3{ 4 private string strUserID; 5 private string strUserName; 6 public string ID 7 { 8 set 9 { 10 this.strUserID = value; 11 } 12 get 13 { 14 return this.strUserID; 15 } 16 } 17 public string Name 18 { 19 set 20 { 21 this.strUserName = value; 22 } 23 get 24 { 25 return this.strUserName; 26 } 27 } 28 29 public Login() 30 { 31 //利用者データを格納 32 string[] LSI = new string[2]; 33 LSI[0] = ID; 34 LSI[1] = Name; 35 ```
//ログイン押下 protected void btnLogin_ValidatedClick(object sender, EventArgs e) { DataSet dt =new DataSet(); ; //結合 StringBuilder SB = new StringBuilder(); SB.Append("select UserId , UserName "); SB.Append("from UserMaster "); SB.Append(" where UserId ='" + _txtID + "'"); SB.Append("and Password = '" + _txtPW + "'"); //データ検索 dt = dataAccess.Execute(SB.ToString()); int cnt = dt.Tables[0].Rows.Count; //データが存在しない場合 if( cnt == 0) { return; }     //データが存在した場合 else { //プロパティセット SetUserMastery(dt); //次のページを開く Server.Transfer("client.aspx"); } //ユーザーマスタをクラスにセット private void SetUserMastery(DataSet dt) { loguininfo.ID = CheckNull(dt.Tables[0].Rows[0]["UserId"]); loguininfo.Name = CheckNull(dt.Tables[0].Rows[0]["UserName"]); } //空白チェック public string CheckNull(object target) { if (target is DBNull) { return string.Empty; } else { return target.ToString(); } }

C#

1//ここに渡したいです 2public partial class client : System.Web.UI.Page 3{ 4 5 6 protected void Page_Load(object sender, EventArgs e) 7 { 8 9 10 } 11}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/11/29 04:58

VSで組んだにしてはインデントが滅茶苦茶ですが、コードフォーマットかけてますか?もしかけていないようでしたらインデントきちんとつけてください。
退会済みユーザー

退会済みユーザー

2018/11/29 05:19

ASP.NET Web Forms アプリの話のようですが、そうであれば ASP.NET のタグを付けてください。
退会済みユーザー

退会済みユーザー

2018/11/29 05:23

開発環境を書いてください。OS, .NET, IIS, Visual Studio のバージョン・エディション、プロジェクトを作ったテンプレートは何か、認証方式、ユーザー情報ストア用の DB は何か、使用ブラウザなど。それらの情報なしでは的を得た回答はできないです。
退会済みユーザー

退会済みユーザー

2018/11/29 05:51

ユーザー認証の話ですよね? 独自実装をしているようですが、そういうことをするのに何の意味があるのか分かりません。前の質問者さんのスレッドから初学者の方と理解していますが(違ったら失礼)、であれば独自実装はセキュリティの問題で実用にはならないと思います。ASP.NET に備わっている標準のフォーム認証を使いましょう。
guest

回答1

0

上の質問に対する私のコメントに返事がないですが、ASP.NET Web Forms アプリの話と理解し、ユーザー情報を渡すことに意味があるのかどうかという話はとりあえず置いといて、

配列を格納までができたのですが遷移後のページへの渡し方、書き方がわかりません。

・・・ということだけ回答します。

Session の使用を検討してください。セッション状態が InProc であれば、メモリに保持されているオブジェクトであれば何でも渡せます。

配列を格納するページでクラス Login を初期化して必要な情報を格納して遷移先のページに渡せば良いと理解して、元のページで、

Login login = new Login(); ・・・Login オブジェクトに必要な情報を格納・・・ Session["任意の名前"] = login;

とし、遷移先のページでは、

Login login = (Login)Session["任意の名前"];

として取得できます。

セッション状態が InProc でなく、StateServer または SQLServer の場合は Login オブジェクトはシリアル化できないとダメですので注意してください。

投稿2018/11/30 02:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問