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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.12056 の関連記事表示

<< 0 >>
■12056  列コレクションメンバの配列
□投稿者/ OGAKUZU -(2007/12/28(Fri) 14:29:52)

    分類:[C#] 

    VS 2005 C#

    DataSetの下のTablesコレクションの下のColumnsコレクションの下のメンバに配列を用いることはできますでしょうか?

    イメージとしては、

     メンバ
      0 Column1
      1 Column2
      2 Column3[40] ←
      3 Column4

    こんな感じです。

    方法がありましたらご指導ください。
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■12057  Re[1]: 列コレクションメンバの配列
□投稿者/ ぽぴ王子 -(2007/12/28(Fri) 14:37:53)
>
    No12056 (OGAKUZU さん) に返信

    > DataSetの下のTablesコレクションの下のColumnsコレクションの下のメンバに配列を用いることはできますでしょうか?

    できません。


    …とだけ書くとちょっと不親切なので。
    質問するときは目的だけ書くんじゃなくて、なぜそういったことができるか疑問に思ったのか、なぜそういったことをしたいと思ったのか
    などを具体的に書くといいと思います。
    ちなみに「Columnsコレクション」と書いているわけで、コレクション自体が配列『のように』扱えることを知っていれば、こういった
    疑問は起こらなかったような気がするので、たぶんに OGAKUZU さんはコレクションについて誤解されているように思います。
    コレクションについてもうちょっと調べてみるといいんじゃないでしょうか。
記事No.12056 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12058  Re[2]: 列コレクションメンバの配列
□投稿者/ OGAKUZU -(2007/12/28(Fri) 15:54:10)
    ぽぴ王子さん、ありがとうございました。

    > なぜそういったことをしたいと思ったのかなどを具体的に書くといいと思います。

    配列にしたいと思ったのは、40個の要素(Column3[0]〜[39])に共通のプロパティを使用し
    かつ、コード内で

    for(i = 0; i < 40; i++)
    {
      Column3[i] = yyy[i];
    }

    のように、ひとくくりに扱いたかったためです。

    配列として(あるいは配列のように)扱うことができなければ

    メンバ
      0 Column1
      1 Column2
      2 Column3-0 ←
      3 Column3-1 ←
        :
      42 Column3-39 ←
      43 Column4

    のように定義する必要があり、そのため、40個の要素各々にプロパティを
    設定しなければならず、コードも

      Column3-0 = yyy[0];
      Column3-1 = yyy[1];
        :
      Column3-39 = yyy[39];

    のように沢山書かなければならなくなってしまうと考えました。

    > コレクションについてもうちょっと調べてみるといいんじゃないでしょうか。

    コレクションについては、初心者のため知らないことが沢山ありますので
    勉強して解決策を模索してみようと思います。

    ご指導ありがとうございました。
記事No.12056 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12059  Re[3]: 列コレクションメンバの配列
□投稿者/ ぽぴ王子 -(2007/12/28(Fri) 16:40:17)
>
    No12058 (OGAKUZU さん) に返信
    
    説明ありがとうございます。
    
    > 配列にしたいと思ったのは、40個の要素(Column3[0]〜[39])に共通のプロパティを使用し
    > かつ、コード内で
    > 
    > for(i = 0; i < 40; i++)
    > {
    >   Column3[i] = yyy[i];
    > }
    > 
    > のように、ひとくくりに扱いたかったためです。
    
    たぶんそのような意図なのではないかとは思いましたが、勝手にこちらで想像するのも
    よくないかと思いましたので、説明をお願いしました。
    (相手が自分と同じ理解を持っているわけではないですからね)
    
    で。
    そのような場合であれば、DataTable.Columns プロパティを利用することができると思います。
    DataTable.Columns プロパティは DataColumnCollection クラスです。DataColumnCollection
    クラスは一般的なコレクションクラスと同じように、インデックスまたは名前を使って内部の
    DataColumn クラスにアクセスすることができます。
    
    難しい説明はこれぐらいにして、具体的な方法。
    
    > メンバ
    >   0 Column1
    >   1 Column2
    >   2 Column3 ←
    >   3 Column4 ←
    >     :
    >   41 Column42 ←
    >   42 Column43
    
    となっていた場合(Column3〜Column42をループでアクセスしたい場合)は、以下のコードでできます。
    
    DataSet ds;
    (((ds にデータを読み込む処理    中身は省略)))
    for(i = 0; i < 40; i++)
    {
        ds.Tables[0].Columns[2 + i] = yyy[i];
    }
    
    インデックスを使わずに名前を使う方法もあります。
    
    DataSet ds;
    (((ds にデータを読み込む処理    中身は省略)))
    for(i = 0; i < 40; i++)
    {
        ds.Tables[0].Columns[string.Format("Columns{0}", 3 + i)] = yyy[i];
    }
    
    かなり手抜きをしていますが、これでわかるでしょうか。
    このコードが何をしているのかを理解してから使ってみると、上達が早いかもしれません。
    (コレクションの勉強ついでに調べてみてください)
記事No.12056 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12066  Re[4]: 列コレクションメンバの配列
□投稿者/ OGAKUZU -(2007/12/28(Fri) 21:13:12)
    「コレクション自体が配列『のように』扱える」ということが、おおよそ理解できたようです。

    メンバ
      0 Column1
      1 Column2
      2 Column3_0 ←
      3 Column3_1 ←
        :
      41 Column3_39 ←
      42 Column4

    // プロパティをひとくくりに扱う
    DataSet ds = dataSetOGAKUZU;
    for (i = 0; i < 40; i++)
    {
      ds.Tables[0].Columns[string.Format("Column3_{0}", i)].DataType =
        System.Type.GetType("System.Double");
    }

    // データをひとくくりに扱う
    DataSet ds = dataSetOGAKUZU;
    for (i = 0; i < 40; i++)
    {
      ds.Tables[0].Rows[0][string.Format("Column3_{0}", i)] = yyy[i];
    }

    ぽぴ王子さん、ありがとうございました。
記事No.12056 のレス / END /過去ログ26より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -