- 題名: 配列をdataTableに格納し、DataGridViewに表示
- 日時: 2010/12/27 15:27:16
- ID: 27913
- この記事の返信元:
- (なし)
- この記事への返信:
- [27914] Re[1]: 配列をdataTableに格納し、DataGridViewに表示2010/12/27 19:49:21
- ツリーを表示
2010/12/27(Mon) 19:52:50 編集(投稿者)
■No27913 に返信(としおさんの記事)
> 配列をDataTableに格納するという部分がいまいち分からず、中途半端なままになっています。
中途半端でもよいので、どのように記述されているのかお教えいただけると回答されるかたにも
伝わりやすいと思います。
> 自分の理想とする動作は配列A{1,3,5,...},B{2,4,6,...}があるとして、dataGridViewに表示する際に
// 配列 A, B があるとして
Int32[] A = new Int32[] { 1, 3, 5 };
Int32[] B = new Int32[] { 2, 4, 6 };
> A | B
> 1 | 2
> 3 | 4
> 5 | 6
// dataGridView に表示する
DataSet dataset_sam = new DataSet();
DataTable sample = dataset_sam.Tables.Add("sample");
sample.Columns.Add("A", typeof(Int32));
sample.Columns.Add("B", typeof(Int32));
for (Int32 i = 0; i < A.Length; i++) {
sample.Rows.Add(A[i], B[i]);
}
dataGridView1.DataSource = dataset_sam;
dataGridView1.DataMember = sample.TableName;
分類:[.NET]
よろしくお願いします。 以前質問したこととまったく同じ内容なのですが、こちらのプログラム内で計算し、取得した配列をdatatableに格納し、フォーム上のdatagridviewに表示したいのですが、うまくいきません。 計算結果が配列に正しく格納されているのはデバッグにより確認済みなのですが、その配列を直接datagridviewのDataMemberに代入すると、データはバインドされているのに、フォーム上で表示されません。 また、配列を一度datatableに格納し、datatableをDataMemberにしようと思い、 //データセットの作成 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,MessageBoxIcon.Error); } } //ストリームリーダーを閉じる StreamReader.Close(); //データテーブルをdataGridView1に割り当てる dataGridView1.DataSource = dataset_sam; dataGridView1.DataMember = "sample"; 上記の以前自分が書いたcsvファイルをdataGridViewに表示するプログラムを参考にしてみたのですが、配列をDataTableに格納するという部分がいまいち分からず、中途半端なままになっています。 自分の理想とする動作は配列A{1,3,5,...},B{2,4,6,...}があるとして、dataGridViewに表示する際に A | B 1 | 2 3 | 4 5 | 6 . | . . | . . | . となることなのですが、うまくできません。 そこで皆様にお聞きしたいのですが、配列をdataTableに格納し、上記のようにDataGridViewに表示するためにはどのようにすればいいのでしょうか? よろしくお願いします。