• 締切済み

SqlDataSource内容を読込みたい

SqlDataSourceの内容をコントロールを介さずに1件ずつ読み込みたいが 以下のエラーが表示されます。 どのようにしたらエラーを回避できるか教えてください。 DB:Access2000 OS:WinXP 開発:VS2005 型 'System.Data.DataView' のオブジェクトを 型 'System.Data.SqlClient.SqlDataReader' にキャストできません Dim Rs As Data.SqlClient.SqlDataReader Rs = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), Data.SqlClient.SqlDataReader) Do While Rs.Read() e.Cell.Controls.Add(New LiteralControl("<br />" & String.Format("{0}", Rs.GetString(0)))) Loop Rs.Close()

みんなの回答

noname#259269
noname#259269
回答No.2

>型 'System.Data.DataView' のオブジェクトを と出てるんで、 Dim Rs As System.Data.DataView = DirectCast(SqlDataSource1.Select(DataSourceSelectArguments.Empty), System.Data.DataView) でしょう。 あとは、Rs を For Each なりでループ処理してください。 http://msdn.microsoft.com/ja-jp/library/system.data.dataview(v=vs.80).aspx

すると、全ての回答が全文表示されます。
回答No.1

こんにちわ。 まず、どのイベント時に行っている処理か明記しましょう。 >e.Cell.Controls.Add(New LiteralControl("<br />" & String.Format("{0}", Rs.GetString(0)))) の「e」はイベントによってどんなものが設定されるのか異なるはずです。 ><br /> がある時点でASP.NETだという事でしょうかね? DBがACCESSなのに「SqlClient.SqlDataReader」は使用できないんじゃないでしょうか? それと、キャストするならばCTypeではなく、この場合DirectCastの方がいいように思います。 データテーブルに格納してもいいんじゃないでしょうか? Dim dt As DataTable dt = SqlDataSource1.DataSource

すると、全ての回答が全文表示されます。

関連するQ&A