• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【ASP.NET】DataSetをSqlDataSourceに組み込めますか?)

【ASP.NET】DataSetをSqlDataSourceに組み込む方法

このQ&Aのポイント
  • ASP.NETの開発環境で、GridViewのページング機能を使うためには、SqlDataSourceやObjectDataSourceを使用する必要があります。しかし、データベースがDataSetである場合、どのようにGridViewにデータをバインドし、ページングを有効にするかが分かりません。SqlDataSourceにDataSetを持っていく方法についても分かりません。
  • DataSetをSqlDataSourceに組み込む方法を調べても見つけることができませんでした。現在のソースコードでは、ページングが有効にならずエラーが発生しています。
  • ご質問の内容は、ASP.NETの開発環境でDataSetをSqlDataSourceに組み込み、GridViewのページング機能を有効にする方法に関するものです。現在の状況では、正しい方法が分からず、エラーが発生しています。ご教示いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

エラーとは 「ハンドルされていないイベント PageIndexChanging を送出しました」 のようなものですか? PageIndexChangingをハンドルするイベントハンドラを作成しなくてはいけません。 基本的なページング動作をさせるには、そのイベントハンドラの中で GridView1.PageIndex = e.NewPageIndex //再度バインド のようなコードを書けばよいです。

参考URL:
http://www.cocoaliz.com/asp.net/index/24/
neco001
質問者

お礼

>GridView1.PageIndex = e.NewPageIndex おお!これだけで解決することだったのですね。 どうも、ありがとうございました!! 非常に助かりました!

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

関連するQ&A

  • SQLDataSourceのSQL文を変えて・・・

    ASP.Net にて日々壁が立ち上がっております。 GridView のデータソースであるSQLDataSourceのSQL文を変更し、尚且つページング、ソーティングも行いたいと思うのですが、なかなかうまく行きません。 Dim SQL As String 条件が複雑なので、SQL には自作したSQL文が入っております。 Me.SqlDataSource.SelectCommand = SQL Me.SqlDataSource.DataBind() このように記述するとGridViewのデータはSQL文に指定した通りに表示されるのですが、ページング、ソーティングを行うと、元々SqlDataSourceに指定してあるSQL文のモノが適応されて表示画面も元データの適応になってしまいます。 何かのサイトでこういう場合は DataSourceID をどうにかすると、ページング、ソーティングともに指定したSQL文のデータソース上で行われるみたいなことが書かれていたのですが、どう記述してよいかわかりません。 例えば・・・ Me.GridView.DataSourceID = "" Me.GridView1.DataBind() Me.GridView1.DataSourceID = Me.SqlDataSource.ID Me.GridView1.DataBind() こんな記述をしてみても、ページング、ソーティングはうまく動作しません。 動的なSQL文をGridViewに適応でき、ソーティング、ページングも適応させるにはどうしたらよいでしょうか? GridView にそういう事が簡単にできれば非常に使い勝手が良いのですが、 初心者的な考えなのかもしれませんが、何卒ご教授いただければと存じます。 よろしくお願い申し上げます。

  • 【ASP.net】SqlDataSourceについて

    【ASP.net】SqlDataSourceについて index.aspxページにSqlDataSource1とGridView1と検索ボタンをセットし、 検索ボタンが押されると、SqlDataSource1にセットしているSQLにWHERE文を 追記して、GridView1を再表示させたいのですが、どのようにすれば良いのでしょうか? 現在のソースです・・・。 Dim Str As String = SqlDataSource1.SelectCommand Dim StrSql As String = "" StrSql = " WHERE lbl = ららら " Str = Str & StrSql SqlDataSource1.SelectCommand = Str GridView1.DataSource = SqlDataSource1.SelectCommand GridView1.DataBind() この状態だと、SQL文がBindされてしまい、DBから値がとれません。 解る方いらっしゃいましたらご教授お願いします。

  • DataSetについて

    下記のようなDataSetを使用した処理質問致します。 TableAdapterのデザイン時にてSELECTCommandで SELECT 'AA' AS 名前 FROM M_マスタ と、記述してDataGridView1に反映しようとしても実際にテーブルに入っているデータがそのまま表示されてしまいます。 このように固定の値を取得する方法はどのようにしたらよろしいのでしょうか?そもそもできないのでしょうか? Dim ds As New DataSet1 Dim Ta As New DataSet1TableAdapters.M_マスタTableAdapter 'テーブルアダプタを利用してデータを読み込む Ta.Fill(ds.M_マスタ) Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "M_マスタ"

  • VB2008データベース

    非接続型データベースでUpdateをする文を書いていますがUpdateでエラーが出てしまいます。  OleDbCommandBuilder の参照をネットで確認等していますがエラーの内容がわかりません。 データベース参考書等にも下記と同じ文例でかいてあります。 どなたか教えてください。 *VB2008で開発しています。 Dim cn As OleDb.OleDbConnection Dim Buf As String Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As DataSet Dim dTbl As DataTable Dim cBuild As OleDb.OleDbCommandBuilder Buf$ = DefCnSt$ & X_SystemFile$ & ";Jet OLEDB:Database Password=" & XdtPs$ cn = New OleDb.OleDbConnection(Buf$) dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 物件", cn) dSet = New DataSet("物件") dAdp.Fill(dSet, "物件") dTbl = dSet.Tables("物件") dTbl.Rows(2)(1) = "ABC" cBuild = New OleDb.OleDbCommandBuilder(dAdp) dAdp.Update(dSet, "物件") <-ここでエラーが出ます。

  • MDBテーブルへの追加変更を教えてください

    いつもお世話になってます。VB2005の初心者の質問です。 データの変更頻度が少ないのでMDBテーブルをDataGridViewの表示させて行の状態から追加変更したいのですが肝心な部分がわかりません。 DB名=NO.MDB テーブル名=番号 (IDNO、addres、TELNO の3項目です) Private Sub 更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 更新.Click Dim dSet As DataSet = New DataSet("番号") Dim cn As OleDb.OleDbConnection =   NewOleDb.OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=NO.mdb;") Dim dRow As DataRow Dim dTbl As DataTable Dim i As Integer dTbl = DataGridView1.DataSource For i = 0 To dTbl.Rows.Count - 1 If dTbl.Rows(i).RowState = DataRowState.Added Then MessageBox.Show(i, "件目") →デバック表示です ??????? Addedならレコードの追加をしたいです End If Next End Sub ご回答よろしくお願いいたします。

  • DataGridViewからDBの更新

    DataGridViewの内容を変更してボタンを押したらDBを更新する ということをしたいのですが とあるサンプルコードには Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As DataSet = New DataSet("t_商品") Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=C:\VB2008\SampleDB.accdb;") 'データセットに取得してデータを表示する dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 商品", cn) dAdp.Fill(dSet, "t_商品") Me.DataGridView1.DataSource = dSet.Tables("t_商品") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dTbl As DataTable Dim dRow As DataRow Dim i As Integer 'DataGridからデータソースを取得する dTbl = Me.DataGridView1.DataSource '編集された行をコミットする For Each dRow In dTbl.Rows If dRow.RowState <> DataRowState.Unchanged Then dRow.AcceptChanges() End If Next End Sub End Class となっているのですがこのまま使用しても更新されません 全くの他力本願な質問ですがよろしくおねがいします イミデイトにはグリッド内容をnchange」になっています?

  • カンマ区切りの文字列をDatasetに登録するには?【VB.NET2005】

    テキストファイルを読込んでカンマ区切りでDatasetに登録する際は 以下の方法で行っていました。 Dim tfp As New TextFieldParser(fileName, System.Text.Encoding.GetEncoding("Shift_JIS")) Dim dt As New DataTable Dim dr As DataRow tfp.TextFieldType = FieldType.Delimited tfp.SetDelimiters(",") While Not tfp.EndOfData dr = dt.NewRow dr.ItemArray = tfp.ReadFields dt.Rows.Add(dr) End While tfp.Close() ds.Tables.Add(dt) これをファイルではなくDim str As String = "123,aaa" という文字列に対して行いたいのですが、 上記のReadFieldsの用に使える物は無いでしょうか?

  • GridViewのデータソースの入れ方がわかりません

    OleDb.OleDbDataAdapter' が定義されていません DataSet' が定義されていません。 OleDb.OleDbConnection' が定義されていません。 OleDb.OleDbDataAdapter' が定義されていません 以上の エラーが出ます 定義の、意味がわかりません 教えてください お願いします WinXP Microsoft Visual Web Developer 2008 ASPX Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As DataSet = New DataSet("顧客台帳") Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\*******\*****.mdb;") 'データセットに取得し、DataGridViewに関連付ける dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 顧客台帳", cn) dAdp.Fill(dSet, "顧客台帳") Me.GridView1.DataSource = dSet.Tables("顧客台帳") End Sub

  • ASP.Net ObjectDataSource!

    お世話になります。 現在Access で作成されているアプリケーションをASP.Netに移植する為に日々精進しております。 GridView のデータソースを自由な感じでWhere条件にしたい事から、SQLDataSource から ObjectDataSource に切り替えた方が良いとのご指摘をうけ、現在作業を行っているのですが、問題が発生いたしました。 SQLDataSource ではSelectCommand に自作したSQL文を設定し、バインドすればGridView に反映できたのですが、 ObjectDataSource にはこのようなプロパティがないのですが、どのように設定すればよいのでしょうか? SQLDataSourceのように簡単には設定できず、特殊なやり方じゃないとダメなのでしょうか? なにぶんAsp.Netは初心者なので、何卒お願い申し上げます。

  • ASP.Net ObjectDataSource

    大変お世話になっております。 Webフォーム上にObjectDataSourceを配置しております。 GridViewのデータソースとして何の問題もなく動作しております。 この配置してある ObjectDataSource のデータ全件を取得したいのですが、 文法はめちゃくちゃだと思うのですが、下記のイメージのような 取得の仕方はありますでしょうか? 他の方法でも構いませんので、ご指摘、ご教授いただければと存じます。 Dim TEST As ObjectDataSource = ODS_TEST Dim buf As New StringBuilder   For Each row As TEST In ObjectDataSource.Rows     buf.Append(row.Cells("項目1").Text)       buf.Append(",")     buf.Append(row.Cells("項目2").Text)   Next  

このQ&Aのポイント
  • ノートパソコンPC-NS610NAW-KSのメモリ増設方法を教えてください。現在8ギガですが、すぐに80%以上になってしまいます。
  • ノートパソコンPC-NS610NAW-KSのメモリ増設方法をお教えください。現在のメモリ容量は8ギガですが、使用率が80%以上になってしまいます。
  • ノートパソコンPC-NS610NAW-KSのメモリ増設方法についてお尋ねします。現在、8ギガのメモリを搭載していますが、使用率がすぐに80%以上になるため、増設したいと思っています。
回答を見る

専門家に質問してみよう