1

私の C# コードでは、次のような接続文字列を使用します。

connection = new SqlConnection(ConfigurationManager.AppSettings["myconnectionstring"])

これは正常に動作します。

私は今<asp:SqlDataSourceコントロールを使用しようとしていますが、次のようにコントロールで上記の接続文字列を使用できないようです:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"   
ConnectionString="<%$ ConfigurationManager.AppSettings["myconnectionstring"] %>"   
SelectCommand="SELECT * from table1"></asp:SqlDataSource> 

次のようなエラーが表示されます。

パーサー エラー メッセージ: サーバー タグの形式が正しくありません。

私は何を間違っていますか?

4

1 に答える 1

1

そこで実行するコードではなく、プレースホルダーです。これは基本的に、DataSource に「構成ファイルで ConnectionStrings という構成ブロックを探し、見つかった場合は、キー myconnectionstring を持つ要素から値を取得する」ことを伝えます。

<asp:SqlDataSource ID="SqlDataSource1" runat="server"    
ConnectionString="<%$ ConnectionStrings:myconnectionstring%>"    
SelectCommand="SELECT * from table1"></asp:SqlDataSource>  

接続文字列を app.config セクションの ConnectionStrings に追加することを忘れないでください。

<connectionStrings>
  <add name="myconnectionstring" connectionString="server=localhost;database=Northwind;user=north;password=north;" providerName="System.Data.SqlClient" />
</connectionStrings>

特にあなたがそれらを安全に保ちたいからです

于 2012-08-31T10:53:27.287 に答える