0

Visual Studio 2017を使用してASP.NET Webサイトを構築しています(VBを使用しています)。Web設定ファイルにいくつかの接続文字列を設定しています異なるユーザータイプ(基本アクセス、管理アクセスなど)各接続タイプは、DB内の異なるスキーマと同様に異なる権限にもアクセスできます。私はログインの成功時に(ログインページ上で)生成され、サイトの他のページで使用されるセッションの内容変数を介してこれらの異なる接続を呼び出そうとしています。ASPで変数としてsession.contentsを使用する方法SQLDataSource Visual Studio 2017

これは、他のページのいずれかに使用ASP接続文字列の例です:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:DBSource1 %>" SelectCommand="Stored_Proc" 
SelectCommandType="StoredProcedure"></asp:SqlDataSource> 

ここで私はSqlDataSourceコントロールにおける変数として使用するために、セッションの内容を経由して呼び出したい部分です:

ConnectionString="<%$ ConnectionStrings:DBSource1 %>" 

ここで私は、変数として使用したいのですが、セッションの内容コードです:

Session("SqlConstrName").ToString() 

私はASPコードでテキストボックスにセッションの内容を置くことができていますし、それが

ConnectionStrings:DBSource1 

上に示していますように、私はいくつかの研究を行って、私はのために<% =%を使用することができないことを知っている接続名を与えますサーバー側のコントロールで、<%#%、 "<%#%"、または他の組み合わせの種類を使用して変数を渡すと失敗しました。私はまた、名前の部分だけをバインドし、 "ConnectionStrings:"部分を除外しようとしましたが、まだ成功しませんでした。

私は簡単にVBコードで接続文字列を作成してオブジェクトにデータをバインドすることができますが、ASPX側でこれを行うようにしていますので、ドロップダウンやグリッド表示など。stay boundは、バックエンドで必要なVBコードの量を減らし、変更イベントをたくさん書く必要なしに、ページ上の他の項目間をリンクするよりダイナミックな表を持つことができます。どんな提案や考えも大変ありがとうございます。

+0

PageLoadイベントのコードビハインドで、SqlDataSource1オブジェクトのConnectionStringプロパティを設定できる必要があります。 –

答えて

0

あなたのシナリオが想定されているdrag'n'dropコントロールデザイナーとまったく同じ場合は、問題はありません。

あなたが作成したものから何らかの逸脱が必要な場合は、自分でコードを書く方がよいでしょう。

いずれにしても、どこかにコードがあります。違いは、あなたが書いたコードを制御しているか、他の誰かが書いたコードと戦っていることです。

IMHO。

+0

ありがとうございました!私は、SQL接続を追加するときにビジュアルスタジオのドロップダウンに組み込まれた機能を模倣しようとしましたが、接続名で変数を渡そうとするとエラーが発生し、ページをレンダリングできません。ビジュアルスタジオは、SQLDataSourceに渡される変数を好きではありません。可能であれば、VBコードでの接続を避けようとしています。 – MHamer

関連する問題