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

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

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

Re[2]: 別のメソッドに値を引き継ぐ方法


(過去ログ 68 を表示中)

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

■39756 / inTopicNo.1)  別のメソッドに値を引き継ぐ方法
  
□投稿者/ もんた (7回)-(2009/08/13(Thu) 05:23:41)

分類:[ASP.NET (C#)] 

まず下のソースを見てください。


DataTable GetData(){
DataTable dt = new DataTable();

String[] header = {"A","B","C"};

for(int j=0; j<=3; j++){
    dt.Colmuns.Add(new DataColmun(header[j], typeof(String)));
}

DataRow dr = dt.NewRow();

for(i =0; i<=count; i++){
dr["A"] = aaa[i];
dr["B"] = bbb[i,1];
dr["C"] = ccc[i,2];
dt.Rows.Add(dr);
}
retuen dt;
}


これはGridViewのデータソースを作っているコードです。
そして見ればわかるのですが、iやcountといった変数や、aaaなどの配列はここでは定義されていません。
これはPage_Load内で宣言されていて、そこでDBの値を変数に入れています。
ですがその変数や配列をここでは使えない為困っています。
どうにかしてPage_Load内で宣言されたものをこのメソッド内で使えないでしょうか?

何か良い案があれば教えていただけるとありがたいです。

引用返信 編集キー/
■39758 / inTopicNo.2)  Re[1]: 別のメソッドに値を引き継ぐ方法
□投稿者/ らじうむ (23回)-(2009/08/13(Thu) 07:18:27)
2009/08/13(Thu) 07:33:19 編集(投稿者)
2009/08/13(Thu) 07:28:59 編集(投稿者)
2009/08/13(Thu) 07:28:50 編集(投稿者)

No39756 (もんた さん) に返信
> これはGridViewのデータソースを作っているコードです。
> そして見ればわかるのですが、iやcountといった変数や、aaaなどの配列はここでは定義されていません。
> これはPage_Load内で宣言されていて、そこでDBの値を変数に入れています。
> ですがその変数や配列をここでは使えない為困っています。
> どうにかしてPage_Load内で宣言されたものをこのメソッド内で使えないでしょうか?
…はい?ローカル変数をスコープ外から見れるわけないじゃないですか。
GetDataメソッド内でも宣言してください。
もしPage_Loadメソッド?で格納した値を保持しておきたいならメンバ変数かグローバル変数を使用すれば良いと思いますよ?

#ん?ASP.NET?すみません。それなら少し事情が違うのかもしれません。(ASP.NETは良く知らないのです。)
#いやでも、ASP.NETだろうとC#なんだしメンバ変数は使えるはず…
引用返信 編集キー/
■39759 / inTopicNo.3)  Re[1]: 別のメソッドに値を引き継ぐ方法
□投稿者/ Jitta (588回)-(2009/08/13(Thu) 09:12:08)
No39756 (もんた さん) に返信

> DataTable GetData(){
> DataTable dt = new DataTable();
>
> String[] header = {"A","B","C"};
>
> for(int j=0; j<=3; j++){
> dt.Colmuns.Add(new DataColmun(header[j], typeof(String)));
> }

「データをとる」ところで、DataTable の構成を設定するのは、なんだかおかしいと思います。
それよりも、前もって型付けしましょう。


>
> DataRow dr = dt.NewRow();

 DataTable に型が付けてあると、この DataRow も、型付けできます(型付けされていなければならなくなります)。

>
> for(i =0; i<=count; i++){
> dr["A"] = aaa[i];
> dr["B"] = bbb[i,1];
> dr["C"] = ccc[i,2];
> dt.Rows.Add(dr);
> }
> retuen dt;
> }

i はただのループカウンタなので、ここで再宣言すればok。
count は、この場合 DataRow にある DataColumn の数なので、dt か dr からカラムの数を調べればok。


コードを見るのではなく、仕様を読みましょう。
引用返信 編集キー/
■39959 / inTopicNo.4)  Re[2]: 別のメソッドに値を引き継ぐ方法
□投稿者/ もんた (8回)-(2009/08/18(Tue) 20:08:00)
みなさんありがとうございます。
無事接続する事ができました。

コードを見るのではなく仕様を読む・・・・・肝に銘じておきます。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -