DOBON.NET DOBON.NETプログラミング掲示板過去ログ

配列をdatatableに入れ、datagridviewに表示する方法について

環境/言語:[Windows XP VS C# 2010 Express]
分類:[.NET]

よろしくお願いします。昨日csvファイルの内容を1列ずつ配列にする方法を質問したものですが、もう一度皆様のお力をお借りしたく思い、質問させていただきます。

現在昨日質問させていただいた内容を反映し、csvファイルの内容を配列にすることができました。

次にその配列をdatagridviewに表示できるようにしようと思い、以前作成したcsvファイルの内容をdatagridviewに表示させるコードを改変していたのですが、なかなかできません。

以下のコードをどのように改変したら配列の内容をdatagridviewに表示できるかご教授していただきたく思います。
よろしくお願いします。

//データセットの作成
            DataSet dataset_sam = new DataSet();
            //データセットにテーブルを加える
            dataset_sam.Tables.Add("sample");
            //ストリームリーダーの作成
            System.IO.StreamReader StreamReader = new System.IO.StreamReader(filename, System.Text.Encoding.GetEncoding(932), false, 512);
            //文字列を取得する変数の作成
            string[] stringBuffer;
            //カンマで区切られた範囲を文字列配列に格納
            stringBuffer = StreamReader.ReadLine().Split(',');
            //対象ファイルの1行目をヘッダーテキストに加える
            foreach (string s in stringBuffer)
            {
                dataset_sam.Tables["sample"].Columns.Add(s);
            }
            foreach (DataGridViewColumn c in dataGridView1.Columns)
            {
                c.SortMode = DataGridViewColumnSortMode.NotSortable;
            }
            //対象ファイルの内容を読み取り、データテーブルに格納
            while (StreamReader.Peek() != -1)
            {
                stringBuffer = StreamReader.ReadLine().Split(',');
                try
                {
                    DataSetの作成 
                    DataRow row = dataset_sam.Tables["sample"].NewRow();
                    for (int counter = 0; counter < row.ItemArray.Length; counter++)
                    {
                        row[counter] = stringBuffer[counter];
                    }
                    dataset_sam.Tables["sample"].Rows.Add(row);
                }
                //例外処理
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message, "例外", MessageBoxButtons.OK);
                }
            }
            //ストリームリーダーを閉じる
            StreamReader.Close();
            //データテーブルをdataGridView1に割り当てる
            dataGridView1.DataSource = dataset_sam;
            dataGridView1.DataMember = "sample";
■No27870に返信(としおさんの記事)

ぱっと見このままで処理出来そうに見えますが
どんな問題が発生してますか?
2010/12/22(Wed) 16:50:09 編集(投稿者)

■No27871に返信(shuさんの記事)
> ■No27870に返信(としおさんの記事)
>
> ぱっと見このままで処理出来そうに見えますが
> どんな問題が発生してますか?

たとえばですが、配列A、Bがあるとして、
A | B
a1 | b1
a2 | b2
.
.
.
といったようにしたいのですが、その具体的な方法が分かっていないのが現状です。

[編集]
すいません、見当違いな回答でした。
問題点というか自分なりにコードを組んだ結果、
a1
b1
a2
b2
.
.
.
という風に1列目に交互に表示されるようになります。
> 問題点というか自分なりにコードを組んだ結果、
> a1
> b1
> a2
> b2
> .
> .
> .
> という風に1列目に交互に表示されるようになります。
これだとBの内容をセットするまで新しい行を作らないようにすれば
いいのでは?としか書けないです。
■No27894に返信(shuさんの記事)
>>問題点というか自分なりにコードを組んだ結果、
>>a1
>>b1
>>a2
>>b2
>>.
>>.
>>.
>>という風に1列目に交互に表示されるようになります。
> これだとBの内容をセットするまで新しい行を作らないようにすれば
> いいのでは?としか書けないです。

すいません。質問の仕方が適切でなかったので、再度別の形で質問させてもらいます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板