別の手段としては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
コマンド列にあるのは 1つのリンクでしょうか?
もともと『選択』だった物とか ・・・
であるなら その列をTemplateFieldに変換して
ItemTemplateにあるリンクのプロパティで『DataBindingsの編集』を実行
CommandArgumentを[好きな人]にします
GridViewのRowCommandイベントで
if IsPostBack then
TextBox1.Text = e.CommandArgument
end if
といった具合でご希望の処理が出来そうですよ
AccessDataSourceのSQLに[好きな人]も含まれている前提ですが
お礼
またまたどうも、わざわざ夜中にコードまで書いて貰って申し訳ないです。 普通にVBやらC#でデータベースからデータ取り出すのと一緒っぽいですね。 DataSource貼り付けた時点で全テーブル(ないしはレコード)がロードされてて、簡単に好きな結果だけ取り出せると思ってたんですが、よくよく考えてみれば普通にありえないことを妄想してました。 お付き合い頂いて申し訳無いです。