お世話になります。
ASP.Net 初心者です。日夜修行をしているのですが、難解な壁に当たっております。
ASP.Net にてObjectDataSourceを作成し、
グリッドビューの動的なWhere句に対応させるべく
自分なりに、例題のプログラムを変形させて以下のようにさせました。
引数のSQLには 完成されたSQL文が入っております。
ObjectDataSource には MstTokDataSet.xsd を作成
その際にできたアダプターが t_MstTokTableAdapter になります。
一番簡単なプログラムを書き、動作するところまでいけば、あとは応用かなと思うのですが、
下記をデバックすると
Return Comm.ExecuteReader(CommandBehavior.CloseConnection)
一番最後のこの部分で、下記のエラー表示されてしまいます。
エラー 1 型 'System.Data.Common.DbDataReader' の値を 'System.Data.DataSet' に変換できません。
まずは自分で記述したSQL文を引数に入れて、下記をボタンコントロールから実行してグリッドビューの内容を変更したいのですが、なかなかうまくいかないですね!
(1)下記のプログラムの何が問題なのか?
(2)考え方は正しいのか? とんちんかんな事をしてないでしょうか?
(3)ボタンコントロールからこのメソッドを呼び出すにはどのようにすればよろしいのでしょうか?
上記(1)、(2)、(3)をご教授いただけますと大変助かります。
何卒よろしくお願い申し上げます。
----------------------------------------------------------------------------------
Imports Microsoft.VisualBasic
Imports System.ComponentModel
Imports System.Data
Imports System.Data.Common
Imports System.Data.SqlClient
Namespace MstTokDataSetTableAdapters
Partial Public Class t_MstTokTableAdapter
<DataObjectMethod(DataObjectMethodType.Select, False)> _
Public Function GetMstTokDataSet(ByVal SQL As String) As DataSet
Dim Setting As ConnectionStringSettings = ConfigurationManager.ConnectionStrings("connectionString")
Dim Factory As DbProviderFactory = DbProviderFactories.GetFactory(Setting.ProviderName)
Dim DB As DbConnection = Factory.CreateConnection()
DB.ConnectionString = Setting.ConnectionString
Dim Comm As DbCommand = Factory.CreateCommand()
Comm.Connection = DB
Comm.CommandText = SQL
DB.Open()
Return Comm.ExecuteReader(CommandBehavior.CloseConnection)
ここでエラーになってしまいます。例題どおりやってるのですが・・・
End Function
End Class
End Namespace
----------------------------------------------------------------------------------
お礼
お世話になります。 ObjectDataSource とDBの接続方法、動的SQL文の設定、 そのほか、いろいろな接続、変更などの方法の仕方が未熟ゆえ わからない次第でございます。 まだグリッドビューの動的SQLの変更方法など、まだわたくしには早かったかなと質問の回答を見させていただき思って次第でございます。 まずは ご紹介いただいた、赤間本を読破、熟読し、グリッドビュー、リストビューの選定など、改めてご質問させて下さいませ。 その際には初心者にもわかるご回答お待ち申し上げております。 ありがとうございました。
補足
edp3142さん お世話になります。 以下のURLの緑色の部分のプログラムを変形させただけなのですが、 こちらのプログラム自体の返り値の型が違っていると考えてよろしいのでしょうか? http://www.atmarkit.co.jp/fdotnet/vs2005db/vs2005db_07/vs2005db_07_02.html ちなみになんですが、最後はどう記述すればよいものでしょうか? 何卒よろしくお願い申し上げます。