none
CSVファイルを読込みGridViewに表示させるのは可能でしょうか? RRS feed

  • 質問

  •  

    おはようございます。

     

    ASP.NET(C#2005)で社内で使用するテスト確認用のプログラムを作っています。

    IIS4.0+ASPとかウインドウズアプリケーション(C#2005)の経験は少しだけあるので、勉強する意味でもASP.NETで作ってみようと思っています。

     

    簡単に作ろうと思えば、読込んだCSVファイルを<table><tr><td>~</td></tr></table>とすれば終わりですが、ファイル内容をGridViewに表示しようと考えています。

     

    ウインドウズアプリケーションではdataGridViewを使ったプログラムが過去にあったので、似たようなコーディングで済むのかなぁ?

    と思っているのですが、全く違うようなコーディングになるんでしょうか?

     

    ※ウインドウズアプリケーションでは、

    dataGridView1[iCol, iRow].Value = csv_data.ToString();

    と記述していました。

     

    ご存知の方やご経験の方がいらっしゃれば、どんな事でも構わないのでご教授頂ければ幸いです。

    2007年11月21日 1:15

回答

  • かさこさん、こんにちは。

     かさこ さんからの引用

    ウインドウズアプリケーションではdataGridViewを使ったプログラムが過去にあったので、似たようなコーディングで済むのかなぁ?

    と思っているのですが、全く違うようなコーディングになるんでしょうか?


    表示させるだけならほとんど同じになります。(場合によってはまったく同じ)

    CSV を何らかの DataSource にしてしまえば良いわけですから。

    たとえば、CSV を OIeDb の DataAdapter を使って DataTable を作るとかですね。

    2007年11月21日 1:39

すべての返信

  • かさこさん、こんにちは。

     かさこ さんからの引用

    ウインドウズアプリケーションではdataGridViewを使ったプログラムが過去にあったので、似たようなコーディングで済むのかなぁ?

    と思っているのですが、全く違うようなコーディングになるんでしょうか?


    表示させるだけならほとんど同じになります。(場合によってはまったく同じ)

    CSV を何らかの DataSource にしてしまえば良いわけですから。

    たとえば、CSV を OIeDb の DataAdapter を使って DataTable を作るとかですね。

    2007年11月21日 1:39
  • じゃんぬねっと 様

     

    こんばんは。 かさこです。

    とりあえずcsvファイルをテーブルリンクでアクセスに取込み表示することができるようになりました。

    (デザイン画面には「データバインド」と表示されています)

     

    考えていたのは、csvファイルを1行ごとに読み込みグリッド部分にセットしていく方法を考えていました。(下記のように)

     

                // 1行毎にcsvファイルを取得
                while ((sCSV = sr.ReadLine()) != null)
                {
                    iRow++;
                    GridView1[0, iRow].Value = iRow.ToString();

                    // カンマで区切られた文字列を取得
                    string[] sDAT = sCSV.Split(',');

                    // 取得した文字列を表示
                    for (iCol = 0; iCol < sDAT.Length; iCol++)
                    {
                        GridView1[iCol, iRow].Value = sDAT[iCol].ToString();
                    }
                }

    少なくともウインドウズフォームでグリッドを使用した時は、上記のようにプログラミングしたのですが・・・。

    (現在GridView1[x,y] = の部分はコメントアウトしています)

     

    上記のような部分でグリッド部分にセットしていく方法はあるんでしょうか?

    2007年11月21日 11:35
  • じゃんぬねっと 様

     

    こんばんは。 かさこです。

    csvファイルをテーブルリンクでアクセスに取込み、画面表示できるようになりました。

    (デザイン画面には「データバインド」と表示されています)

     

    でも疑問点があります。

    ウインドウズフォームでグリッドに表示していた部分を流用して、下記のコーディングがあるのですが『GridView1』の部分をコメントアウトしても画面に表示されます。

     

                // 1行毎に取得
                while ((sCSV = sr.ReadLine()) != null)
                {
                    iRow++;
                    GridView1[0, iRow].Value = iRow.ToString();

                    // カンマで区切られた文字列を取得
                    string[] sDAT = sCSV.Split(',');

                    // 取得した文字列を表示
                    for (iCol = 0; iCol < sDAT.Length; iCol++)
                    {
                        GridView1[iCol, iRow].Value = sDAT[iCol].ToString();
                    }
                }


     

    上記のようにfor文の中でグリッドに表示させることは可能なのでしょうか?
    2007年11月21日 11:44
  •  かさこ さんからの引用

    上記のようにfor文の中でグリッドに表示させることは可能なのでしょうか?

     

    不可能ではないですが、普通はあまりしません。もし実現されるのであれば、以下が参考になると思います。

     

    GridViewに行追加するには?

    http://oshiete1.goo.ne.jp/qa2468406.html?ans_count_asc=20

    2007年11月21日 17:12
    モデレータ