- PR -

VWDで、QueryStringParameterで動的にDBに接続する方法。

1
投稿者投稿内容
hoshino
常連さん
会議室デビュー日: 2007/02/21
投稿数: 46
投稿日時: 2007-02-22 00:10
初めて投稿します。
皆様よろしくお願いいたします。

<asp:QueryStringParameter Name="DB" QueryStringField="id" Type="String" />

などという形ではなく、Page_Initの際などにVBなどで動的にDataBaseに接続したいと思っています。

例えば、GridView.aspxのGridViewの各列にリンクを貼り、そのリンク先を
DetailsView.aspx?id={0} とします。
そこでDetailsView.aspx のinit時にこのデータを表示するとともにこのデータの他の情報も取得したいと思っています。

Dim setting As ConnectionStringSettings =       
ConfigurationManager.ConnectionStrings("ConnectionString")
Dim factory As DbProviderFactory =
    DbProviderFactories.GetFactory(setting.ProviderName)
Using db As DbConnection = factory.CreateConnection
db.ConnectionString = setting.ConnectionString

Dim comm As DbCommand = factory.CreateCommand
comm.CommandText = "SELECT sample FROM sa1,sa2 WHERE id=@id"
comm.Connection = db

Dim para As DbParameter = factory.CreateParameter


としようとしたのですが、パラメータをどう生成したらよいかがわかりません。
どなたかご意見やアドバイス、ご指摘等いただけたら幸いです。




[ メッセージ編集済み 編集者: hoshino 編集日時 2007-02-22 00:13 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-02-22 01:16
私が質問の意図ちゃんと把握してるかわかりませんが、
Dim para As DbParameter = comm.CreateParameter
ということですかね。
hoshino
常連さん
会議室デビュー日: 2007/02/21
投稿数: 46
投稿日時: 2007-02-22 01:47
お返事ありがとうございます。

GridView.aspxのリンクにバインドされた値(上でいう{0})を、
DetailsView.aspxにデータがバインドされる前に取得し、それを
para.Value として データをDBから抽出したいという意味なのですが、
わかりずらくてすいません。

例えばSession なら

Dim context As HttpContext = HttpContext.Current
Dim session As HttpSessionState = context.Session
para.Value = session.Keys(0)
comm.Parameters.Add(para)

のように、{0}の値でDBに検索をかけたいのですが、
{0}の値を取得する方法はないのでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-02-22 02:14
getパラメータの取得の仕方でしたか。
para.Value = Request.QueryString("id")
ということでしょうか。
hoshino
常連さん
会議室デビュー日: 2007/02/21
投稿数: 46
投稿日時: 2007-02-22 02:20
お返事ありがとうございます。

今試してみましたが、無事取得できました。
ありがとうございます。
とても感謝しております。
機会があればまたご指導いただければ幸いです。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)