こんちは。
手元に書籍類が全く無く、ネットで調べたりしたものの僕の頭では解決しなかったので、ご存知の方がいらっしゃったら教えてくださいませ。
やりたい事
aspxに貼り付けてあるAccessDataSourceに対して、ODPにあるようなExecuteNonQueryやExecuteReaderみたいな関数で結果だけ取得したい。
現在の状況は
WEBフォーム上に、AccessDataSourceをバインドさせたGridView、
テキストボックス のコントロールを配置しています。
・AccessDataSource
[テーブルA]
[名前][住所][電話][メモ][好きな人]
GridViewには、コマンド列とAccessDataSourceの[テーブルA]から[名前][住所][電話]のフィールドを表示させています。
コマンド列に設置したリンクを押すと、該当行の[好きな人]データをテキストボックスに表示します。
正直なところ、かなり作り込んでしまってまして今更DBへのアクセス方法とか変えたく無いのが本音です。
表現がちょっとアレですが、あー知ってる知ってるって方いらっしゃったら教えてくださいませ。
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
またまたどうも、わざわざ夜中にコードまで書いて貰って申し訳ないです。
普通にVBやらC#でデータベースからデータ取り出すのと一緒っぽいですね。
DataSource貼り付けた時点で全テーブル(ないしはレコード)がロードされてて、簡単に好きな結果だけ取り出せると思ってたんですが、よくよく考えてみれば普通にありえないことを妄想してました。
お付き合い頂いて申し訳無いです。
No.1
- 回答日時:
コマンド列にあるのは 1つのリンクでしょうか?
もともと『選択』だった物とか ・・・
であるなら その列をTemplateFieldに変換して
ItemTemplateにあるリンクのプロパティで『DataBindingsの編集』を実行
CommandArgumentを[好きな人]にします
GridViewのRowCommandイベントで
if IsPostBack then
TextBox1.Text = e.CommandArgument
end if
といった具合でご希望の処理が出来そうですよ
AccessDataSourceのSQLに[好きな人]も含まれている前提ですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ttlで戻り値を取得する方法
-
コマンドプロンプトが実行中か...
-
Tera Term Proに関する質問です。
-
VBユーザーフォームで時間入力
-
コマンドプロンプトで表示が多...
-
バッチファイルでキー操作を行う。
-
別のユーザーフォームのコマン...
-
デフォルトのショートカットキ...
-
WaitForSingleObjectについて
-
文字の点滅はどうやるのですか?
-
この画像のプログラムを出すコ...
-
バッチファイルでユーザーに入...
-
c言語を勉強し始めたばかりの...
-
ディスクの空き容量を取得する...
-
開発者コマンドプロンプト for ...
-
コンボボックス(最終行取得)
-
コマンドプロンプトについて
-
"伴われる"は正しい日本語ですか?
-
Ciscoポートミラーリングの設定...
-
ルーターにつながっている全て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
バッチファイルでキー操作を行う。
-
ttlで戻り値を取得する方法
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
別のユーザーフォームのコマン...
-
コマンドキーがないんですけど...
-
コンボボックス(最終行取得)
-
文字の点滅はどうやるのですか?
-
EEPROMのデータの初期化について
-
【Teratermマクロ】文字列の一...
-
RTX1100の削除コマンド
-
アンドロイドでも、robocopyは...
-
コマンドプロンプトについて
-
dosバッチ起動後、画面を閉じな...
-
ルーターにつながっている全て...
-
"伴われる"は正しい日本語ですか?
-
VBA でshell関数を使ってコマン...
-
PowerShell実行結果をデスクト...
おすすめ情報