こんちは。
手元に書籍類が全く無く、ネットで調べたりしたものの僕の頭では解決しなかったので、ご存知の方がいらっしゃったら教えてくださいませ。
やりたい事
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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
ttlで戻り値を取得する方法
-
VBユーザーフォームで時間入力
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトで表示が多...
-
別のユーザーフォームのコマン...
-
ルーターにつながっている全て...
-
TEXの表の位置が・・・
-
"伴われる"は正しい日本語ですか?
-
RTX1100の削除コマンド
-
EEPROMのデータの初期化について
-
jupyter notebookが開けません!
-
ユーザーフォームのリストボッ...
-
VBでDosコマンドを動かすには
-
コマンドプロンプトでのSCP
-
パソコン、コマンドプロンプト...
-
PowerShellにおけるコマンドの...
-
この画像のプログラムを出すコ...
-
LinuxからWMI経由でWindowsの情...
-
VB6、コマンドボタンの背景色を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
別のユーザーフォームのコマン...
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
コマンドプロンプトですべてのU...
-
コマンドキーがないんですけど...
-
TEXの表の位置が・・・
-
ルーターにつながっている全て...
-
デフォルトのショートカットキ...
-
dosバッチ起動後、画面を閉じな...
-
文字の点滅はどうやるのですか?
-
EEPROMのデータの初期化について
-
RTX1100の削除コマンド
-
コンボボックス(最終行取得)
-
JP1起動バッチについて
-
makeコマンドのエラー
-
ディスクの空き容量を取得する...
おすすめ情報