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

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

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

No.55540 の関連記事表示

<< 0 >>
■55540  Re[4]: csvファイルの1行目をヘッダにする方法
□投稿者/ daibo -(2010/12/06(Mon) 08:51:50)
    No55508 (todo さん) に返信
    > 2010/12/03(Fri) 19:03:36 編集(投稿者)
    > 2010/12/03(Fri) 18:56:46 編集(投稿者)
    > 
    > DataTableに名前がないカラムを5個追加する代わりに、CSVファイルのヘッダ行(1行目)を読み込んで名前付きのカラムをDataTableに追加する。
    > 2行以降(データ行)はもともとの方法で読み込む。
    > それだけです。
    > 
    > DataRow row = dataset_sam.Tables["sample"].NewRow();
    > 何でこの行がループの外で出ちゃうのですか?
    
    返事が遅くなってしまい申し訳ありません。まだ解決していないのでお付き合いしていただきたく思います。
    ご指摘された点を直してみたのですが、for文の部分で2行目のデータを取得するところまでは大丈夫なのですが、それ以降のデータを取得する段階で[インデックスが配列の境界外です]と例外が発生します。
    以下のソースコードの問題点とその解決策をご教授していただけたら幸いに存じます。
    
    DataSet dataset_sam = new DataSet();
                dataset_sam.Tables.Add("sample");
                dataset_sam.Tables["sample"].Columns.Add("");
                dataset_sam.Tables["sample"].Columns.Add("");
                dataset_sam.Tables["sample"].Columns.Add("");
                dataset_sam.Tables["sample"].Columns.Add("");
                dataset_sam.Tables["sample"].Columns.Add("");
                System.IO.StreamReader StreamReader = new System.IO.StreamReader(@"C:\Users\KOMATSU\Desktop\csv.csv", System.Text.Encoding.GetEncoding(932));
                //DataSetの作成 
                
                string[] stringBuffer = StreamReader.ReadLine().Split(',');
                foreach (string s in stringBuffer)
                {
                    dataset_sam.Tables["sample"].Columns.Add(s);
    
                } 
                while (StreamReader.Peek() != -1)
                {
                    string[] st = StreamReader.ReadLine().Split(',');
                    DataRow row = dataset_sam.Tables["sample"].NewRow();
                    for (int counter = 1; counter < row.ItemArray.Length; counter++)
                    {
                        row[counter] = st[counter];
                    }
                    dataset_sam.Tables["sample"].Rows.Add(row);
                }
                StreamReader.Close();
    
                dataGridView1.DataSource = dataset_sam;
                dataGridView1.DataMember = "sample";
記事No.55486 のレス /過去ログ93より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -