none
DataGridViewに列の挿入 RRS feed

  • 質問

  • Vb2008でDataGridViewにSQLより読んだデータを表示し

    既存の表示データに列データを挿入したいと考えております。

    以下のコードを実行すると何故か単価02の列のみ挿入されます

    単価01と単価03は表示されません。

    初歩的な質問ですいません、ご教授おねがいします。

    Dim newColumn As New DataGridViewTextBoxColumn
    newColumn.Name = "単価01"
    DataGridView1.Columns.Insert(3, newColumn)
    newColumn.Name = "単価02"
    DataGridView1.Columns.Insert(4, newColumn)
    newColumn.Name = "単価03"
    DataGridView1.Columns.Insert(5, newColumn)

    2011年7月7日 3:46

回答

  • 3列追加するのであれば、DataGridViewTextBoxColumnのインスタンスを3つ作成して下さい。
    また、最初から3列表示されたいのであれば、以下のようなSQL文にする方法もあります。

    select hoge, fuga, '' as 単価01, '' as 単価02, '' as 単価03 from テーブル

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク ジョウジ 2011年7月7日 8:27
    2011年7月7日 4:03
    モデレータ
  • Dim newColumn As New DataGridViewTextBoxColumn

    3つ足してあげたのであれば、3つNewしてあげてください

    • 回答としてマーク ジョウジ 2011年7月7日 8:27
    2011年7月7日 4:05
  •     Using newColumn As New DataGridViewTextBoxColumn
          newColumn.Name = "単価01"
          DataGridView1.Columns.Insert(3, newColumn)
        End Using
        Using newColumn = New DataGridViewTextBoxColumn
          newColumn.Name = "単価02"
          DataGridView1.Columns.Insert(4, newColumn)
        End Using
        Using newColumn = New DataGridViewTextBoxColumn
          newColumn.Name = "単価03"
          DataGridView1.Columns.Insert(5, newColumn)
        End Using
    

    たとえばこんな感じです。

     

    • 回答としてマーク ジョウジ 2011年7月7日 8:27
    2011年7月7日 4:43

すべての返信

  • 3列追加するのであれば、DataGridViewTextBoxColumnのインスタンスを3つ作成して下さい。
    また、最初から3列表示されたいのであれば、以下のようなSQL文にする方法もあります。

    select hoge, fuga, '' as 単価01, '' as 単価02, '' as 単価03 from テーブル

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク ジョウジ 2011年7月7日 8:27
    2011年7月7日 4:03
    モデレータ
  • Dim newColumn As New DataGridViewTextBoxColumn

    3つ足してあげたのであれば、3つNewしてあげてください

    • 回答としてマーク ジョウジ 2011年7月7日 8:27
    2011年7月7日 4:05
  •     Using newColumn As New DataGridViewTextBoxColumn
          newColumn.Name = "単価01"
          DataGridView1.Columns.Insert(3, newColumn)
        End Using
        Using newColumn = New DataGridViewTextBoxColumn
          newColumn.Name = "単価02"
          DataGridView1.Columns.Insert(4, newColumn)
        End Using
        Using newColumn = New DataGridViewTextBoxColumn
          newColumn.Name = "単価03"
          DataGridView1.Columns.Insert(5, newColumn)
        End Using
    

    たとえばこんな感じです。

     

    • 回答としてマーク ジョウジ 2011年7月7日 8:27
    2011年7月7日 4:43
  • trapemiyaさんChukiさんご親切にありがとうございます。

    お陰さまで、無事解決しました。

    挿入が3つでない時もあるので

    以下のコードに変更しました

    For i As Integer = 1 To 3
         Using newColumn As New DataGridViewTextBoxColumn
               newColumn.Name = "単価" & Strings.Right("00" & i.ToString, 2)
               DataGridView1.Columns.Insert(i + 2, newColumn)
         End Using
    Next

    2011年7月7日 8:27
  • Using しちゃダメですよ(たとえ例外が発生しなくても)。
    2011年7月8日 4:33