• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AcceccDataSourceに対する任意のコマンドの結果を取得)

AccessDataSourceに対する任意のコマンドの結果を取得

このQ&Aのポイント
  • 手元に書籍類が全く無く、ネットで調べたりしたものの僕の頭では解決しなかったので、ご存知の方がいらっしゃったら教えてくださいませ。
  • aspxに貼り付けてあるAccessDataSourceに対して、ODPにあるようなExecuteNonQueryやExecuteReaderみたいな関数で結果だけ取得したい。
  • 正直なところ、かなり作り込んでしまってまして今更DBへのアクセス方法とか変えたく無いのが本音です。表現がちょっとアレですが、あー知ってる知ってるって方いらっしゃったら教えてくださいませ。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

別の手段としてはADO.NETでコーディングしてしまうといった手法でしょうね これでもSQLに手を加えることの代わりはないのですが 元のAccessDataSourceはいじりませんが   If e.CommandArgument <> "" Then     Dim accds As AccessDataSource = FindControl(GridView1.DataSourceID)     Dim cnn As New OleDbConnection(accds.ConnectionString)     ' GridViewの列からDBへの行特定要素取得     Dim ss As String = GridView1.Rows(Integer.Parse(e.CommandArgument)).Cells(1).Text     Dim cmd As New OleDbCommand("Select * FROM TableA where name='" & ss & "'", cnn)     cnn.Open()     ' DBにSQLを投げる     Dim rd As OleDbDataReader = cmd.ExecuteReader()     rd.Read()     ' 6列目を取得     Label1.Text = rd.GetString(5);     rd.Close()     cmd.Clone()     cnn.Close()   End If

mindatg
質問者

お礼

またまたどうも、わざわざ夜中にコードまで書いて貰って申し訳ないです。 普通にVBやらC#でデータベースからデータ取り出すのと一緒っぽいですね。 DataSource貼り付けた時点で全テーブル(ないしはレコード)がロードされてて、簡単に好きな結果だけ取り出せると思ってたんですが、よくよく考えてみれば普通にありえないことを妄想してました。 お付き合い頂いて申し訳無いです。

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

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

コマンド列にあるのは 1つのリンクでしょうか? もともと『選択』だった物とか ・・・ であるなら その列をTemplateFieldに変換して ItemTemplateにあるリンクのプロパティで『DataBindingsの編集』を実行 CommandArgumentを[好きな人]にします GridViewのRowCommandイベントで if IsPostBack then   TextBox1.Text = e.CommandArgument end if といった具合でご希望の処理が出来そうですよ AccessDataSourceのSQLに[好きな人]も含まれている前提ですが

mindatg
質問者

お礼

ご意見どうも、 やっぱりAccessDataSourceのSQL文に手を入れないとダメっぽいんですねぇ。

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

関連するQ&A