- - PR -
DataTable型をDataSet型に変換したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-09 10:59
いつもお世話になります。
またわからないことが出てきたので、よろしくお願いいたします。 WebアプリでVB.netです。 最終的にやりたいことは、ソート機能を備えたDataGridを表示することです。 しかし、DataGridのDataSourceが簡単にSQLで取得できないので、 下記のようにテーブルを作成して値をセットすることにしました。 -------------------------------------------------------------------------- Private Function Create_DataSource() Dim oTable As New DataTable Dim oColumn As DataColumn oColumn = New DataColumn("SINSEI_YMD", GetType(String)) oTable.Columns.Add(oColumn) oColumn = New DataColumn("SINSEI_NO", GetType(String)) oTable.Columns.Add(oColumn) ・・・・・・・・・・・・・ テーブルに値をセット ・・・・・・・・・・・・・ Return oTable End Function -------------------------------------------------------------------------- BindGridは以下のように作成しています。 -------------------------------------------------------------------------- Private Function BindGrid(・・・・・・・・・・・・・・・・) Dim ds As New DataSet Dim dv As New DataView Dim oTable As New DataTable oTable = Create_DataSource() ←ここで作成したテーブルを取得 ■■■■■■■■■■■■■■■ ←DataTableをDataSetに変換するロジック dv = ds.Tables(0).DefaultView ←SQLで簡単に取得できるときは dv.Sort = strSort このようにやってました。 With DataGrid1 .DataSource = dv .DataBind() End With End Function -------------------------------------------------------------------------- ■■■■■のところでDataSet型に変換したいのですが、どのようにすれば よいのでしょうか? いつも質問ばかりで申し訳ありませんが、どうぞよろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-09-09 11:04
DataTable と DataSet がどういう関係かご存知です?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconaddingdatatabletodataset.asp _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-09-09 11:05
こんにちわ。
何故 DataSet に変えたいのでしょうか? oTable.DefaultView ではだめですか? | ||||||||
|
投稿日時: 2005-09-09 11:06
単に ds.Tables(0) のかわりに oTable を使うのでは不都合があるのですか?
であれば、最初から DataSet を返すメソッドにするとか。 | ||||||||
|
投稿日時: 2005-09-09 11:14
じゃんぬねっと様、囚人様、にしざき様
ありがとうございます。 ちょっとお馬鹿な質問をしてしまいました; ds.Tables(0) はDataSetの中の1つ目のテーブルってことですよね。 お手数をおかけして、ほんとスイマセンでした。 もう少し、頭を柔らかくします☆ | ||||||||
|
投稿日時: 2005-09-09 16:34
ソート部分でエラーになってしまいます。
エラーメッセージ:列 SINSEI_YMD が見つかりません。 ------------------------------------------------------------------ Private Function BindGrid(・・・・・・・・・・・・・・・・) Dim ds As New DataSet Dim dv As New DataView Dim oTable As New DataTable oTable = Create_DataSource() dv = oTable.DefaultView dv.Sort = strSort ← ここでエラーになってしまいます。 With DataGrid1 .DataSource = dv .DataBind() End With End Function ------------------------------------------------------------------ 列名を指定してテーブルを作成しているのですが、 プロシジャを跨ぐとダメなのでしょうか? どうぞよろしくお願い致します。 | ||||||||
|
投稿日時: 2005-09-09 16:34
ソート部分でエラーになってしまいます。
エラーメッセージ:列 SINSEI_YMD が見つかりません。 ------------------------------------------------------------------ Private Function BindGrid(・・・・・・・・・・・・・・・・) Dim ds As New DataSet Dim dv As New DataView Dim oTable As New DataTable oTable = Create_DataSource() dv = oTable.DefaultView dv.Sort = strSort ← ここでエラーになってしまいます。 With DataGrid1 .DataSource = dv .DataBind() End With End Function ------------------------------------------------------------------ 列名を指定してテーブルを作成しているのですが、 プロシジャを跨ぐとダメなのでしょうか? どうぞよろしくお願い致します。 | ||||||||
|
投稿日時: 2005-09-09 16:39
こんにちは、じゃんぬ です。
エラーというか、「例外」が発生するんですね。 例外名も書いた方が回答がつきやすいと思います。
そう思うのであれば、まず中身を確認してみてください。 ds と dv をインスタンス化する意図がわかりませんでしたが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |