
フォーム上にDataGridを設置してsqlcompactで作られたテーブルのデータを表示しようとして
以下のソースを実行すると、エラーになり表示できませんでした。
もし、原因がわかるかたがいらっしゃいましたら教えてくださると助かります。
表示するにあたり、テーブルの特定のカラムだけ表示して、ヘッダーを編集したい。
テーブルの全レコードではなくて対象レコードのみを表示
Dim cn As New System.Data.SqlServerCe.SqlCeConnection
Dim SQL As System.Data.SqlServerCe.SqlCeCommand
Dim db_sql As String
' テーブルスタイルを生成する
Dim dgStyle As DataGridTableStyle = New DataGridTableStyle()
dgStyle.MappingName = "表示用テーブル"
' 列スタイルを生成し、プロパティを設定する
Dim col(4) As DataGridTextBoxColumn
col(0) = New DataGridTextBoxColumn()
col(0).HeaderText = "商品コード"
col(0).MappingName = "商品コード"
col(0).Width = 50
col(1) = New DataGridTextBoxColumn()
col(1).HeaderText = "商品名"
col(1).MappingName = "商品名"
col(1).Width = 100
' 列スタイルをテーブルスタイルに追加する
dgStyle.GridColumnStyles.Add(col(0))
dgStyle.GridColumnStyles.Add(col(1))
' テーブルスタイルをグリッドに追加する
Me.DataGrid_Display.TableStyles.Clear()
Me.DataGrid_Display.TableStyles.Add(dgStyle)
'DBのパスをセットしてオブジェクト化
cn.ConnectionString = "Data Source=" & DB_PATH & ";Password=" & DB_PASSWORD & ";Persist Security Info=True;"
SQL = cn.CreateCommand
'データグリッドを表示する
Dim dbadp As System.Data.SqlServerCe.SqlCeDataAdapter
Dim dbtabl As DataTable
Dim aa As DataSet
db_sql = "SELECT syohinno, syohinryaku, suryo1, suryo2, suryo3 FROM porsj05_tempo ORDER BY date DESC"
dbadp = New SqlCeDataAdapter(db_sql, cn)
dbtabl = New DataTable
dbtabl.Locale = System.Globalization.CultureInfo.InvariantCulture
dbadp.Fill(dbtabl)
Me.DataGrid_Display.DataSource = dbadp
Me.DataGrid_Display.Refresh()
エラー箇所
Me.DataGrid_Display.DataSource = dbadp
エラー内容
Complex DataBinding は IList または IListSource のどちらかをデータソースとして受け入れます。
'System.ArgumentException' の初回例外が System.Windows.Forms.dll で発生しました。
No.1ベストアンサー
- 回答日時:
DataAdapter なんか設定できないよ。
当然でしょう。カップにコーヒーを淹れて、「カップを食べろ」と言っているようなもの。
設定するなら DataTable か DataSet でしょう。
この回答への補足
>>MARU4812さん
回答ありがとうございました。
一応自己解決しました。
そもそも使い方がおかしかったわけですよね・・・
次回からはもうちょっとよく考えるようにします。
↓
一応、回答
(誤)col(0).MappingName = "商品コード"
(正)col(0).MappingName = "ryohincd"
DBの列名を指定する
(誤)dbtabl = New DataTable
(正)dbtabl = New DataTable("表示用")
マッピング名を指定してオブジェクト生成
(誤)Me.DataGrid_Display.DataSource = dbadp
(正)Me.DataGrid_Display.DataSource = dbtabl
データアダプタではなくて、データテーブルを指定
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
SQLを発行とは?クエリの作成と...
-
Accessで別mdbのテーブルをコピー
-
CSVファイルのエクスポートでソ...
-
『列名 '担当者CD' があいま...
-
【ADO】「Execute」を使うと...
-
COBOLのINVALID KEYが理解でき...
-
★クリスタルレポートの元になる...
-
ExcelからAccessのテーブルに書...
-
DataGridViewに複数テーブルの...
-
DAOの作成単位について
-
iBatisでのロック、コミットと...
-
asp.net mvcを利用する場合の複...
-
ワークテーブルの作成について
-
DAOでフィールドのデータ型を変...
-
ダイナセットタイプのレコード...
-
HTMLのテーブルの行数が多くな...
-
accessでcommitができますか?
-
ASP.NET GridView 一致した行の...
-
他のMDBのテーブルに追加したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
VBとアクセスでSQL文に変...
-
SQLを発行とは?クエリの作成と...
-
ExcelVBAからAccessMDB内のテー...
-
[C#] DataGridViewでコンボボッ...
-
エクセルのテーブルを解除する...
-
ACCESS2010 実行時エラー 2766
-
CSVファイルのエクスポートでソ...
-
他のMDBのテーブルに追加したい
-
AccessからExcelへエクスポート...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
Accessで宛名ラベルに同一宛先...
-
DataGridViewに複数テーブルの...
-
.net 複数の主キーを設定する方法
-
Excel複数シートをaccessへ一括...
-
アクセステーブル、リンクとロ...
-
VB.NETでのAccessテーブルリンク
おすすめ情報