下記のようなロジックを動かそうとしていますが、うまくいきません。
「データベースからinteger型の値を取得して、それをreadメソッドでlistに一旦格納し、For Eachで1つずつGridviewに追加していく。」
エラー内容でググっても良くわからなかったので、解決策がわかる方がいましたらご助言お願い致します。。
*DBから値を取得し、listに格納するところは問題なく動いていますが、Gridviewに追加するところでこけます。
エラー箇所:GridView1.Columns.Add(item)
エラー内容:「型 'Integer' の値をを 'System.Web.UI.WebControls.DataControlField' に変換できません。」
Dim list As List(Of Integer) = New List(Of Integer)
Dim result As Integer = Byte.MinValue
Do While testReader.Read()
result = Convert.ToInt32(testReader("price"))
list.Add(result)
Loop
For Each item In list
GridView1.Columns.Add(item)
Next
No.2ベストアンサー
- 回答日時:
☆確認
・ほんとにカラムでいいのですか?
・VS2008Pro+VBで試したソースを書いておきます。
・ImportsはSystem.DataとSystem.Web.UI.WebControlsです。
☆サンプルソース
' テストデータ作成(readerじゃないけど・・・)
Dim dt As DataTable = New DataTable()
Const fld As String = "price"
dt.Columns.Add(fld)
dt.Columns(fld).DataType = GetType(Integer)
For i As Integer = 0 To 3
Dim row As DataRow = dt.NewRow()
row(fld) = i
dt.Rows.Add(row)
Next
' 本題(とりあえず題名通りListに追加)
Dim list As List(Of Integer) = New List(Of Integer)
Dim result As Integer = Integer.MinValue
For Each row As DataRow In dt.Rows
result = row(fld)
list.Add(result)
Next
' カラム作成
For Each item In list
Dim field As BoundField = New BoundField()
field.HeaderText = item.ToString()
GridView1.Columns.Add(field)
Next
' 表示されるか確認用
GridView1.DataSource = dt
GridView1.DataBind()
No.1
- 回答日時:
☆まず確認(間違いないと思うけど・・・)
・ASP.NET+VBですよね?
・Frameworkのバージョンも出来れば提示してほしい。(ジェネリックリスト使ってるから2.0以上だろうけど・・・)
☆エラーの内容
GridView1.Columns.Addの第1引数は、DataControlFieldです。
#実際にはDataControlFieldクラスはMustInheritですので以下のDataControlFieldを継承したクラスを使用します。
#BoundField、ButtonField、CheckBoxField、CommandField、HyperLinkField、ImageField、TemplateField
☆回答
・カラムを追加しているように見受けられます。
・ASP.NETではGridViewをコード上でカラム追加や行追加はあまりおすすめ出来ません。DataSetやDataTableをDataSourceにバインドする方向で検討されてはいかがでしょうか?
一応追加するのに参考のURLを↓に書いておきます。
参考URL:http://social.msdn.microsoft.com/Forums/ja-JP/vw …
この回答への補足
ご助言ありがとうございます。
開発環境:VisualWebDeveloper2008ExpressEdition、vb, Framework3.5
通常はDataSetを使用するのですが、今回はDataSetなどは使用せずコード上でGridViewにデータを追加しなければいけないため、表示させる方法がまったくわかりません。。
【追加コード】
Dim NewField As New BoundField
For Each item In list
listに格納されたinteger型の値(item)をNewFieldに代入するロジック
GridView1.Columns.Add(NewField)
Next
という形のロジックになるんでしょうか?listに格納されたinteger型の値(item)をNewFieldに代入するロジックはどう書けばいいのでしょうか?見当はずれだったらすみません。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) リストBOXの値を取得について 2 2022/05/18 17:51
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
Excel vbs AppActivate エラー
-
【Access】Excelインポート時に...
-
VBAでfunctionを利用しようとし...
-
ある1人の友達のLINEで、少しの...
-
エクセルVBAで埋め込みグラフ(C...
-
パソコンを起動するとこのよう...
-
ADO 「認証に失敗しました」
-
演算子が DBnull 及び integer...
-
VBA データ(特定値)のある最...
-
エクセルVBA 「On Error GoTo...
-
【マクロ】 IFERROR関数をマク...
-
IBM Notes9のメールをExcelVBA...
-
SQL文がDouble型として認識される
-
マクロで"#N/A"のエラー行を削...
-
Excel VBA のFunctionプロシー...
-
マクロの「SaveAs」でエラーが...
-
数式は残し値をクリアするマク...
-
日付書式のString型からData型...
-
実行時エラー7 メモリが不足...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
マクロで"#N/A"のエラー行を削...
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
エクセル関数を教えてください
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
【VBA】ワークブックを開く時に...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
マクロの「SaveAs」でエラーが...
-
WindowsでのPythonの挙動について
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
エクセルVBA 「On Error GoTo...
-
Filter関数を用いた結果、何も...
-
ACCESSで値を代入できないとは?
おすすめ情報