string.Format()
计划很好,只要您不允许用户为此输入任意文本即可。问题就是所谓的“蜂蜇”:
<%#
这意味着使用数据绑定,类似于
Eval()
表达式,并且像其他蜜蜂蜇伤一样,在页面生命周期中发生得太晚了。
相反,您需要完全省略
ConnectionString
文件中的 .aspx
属性,并将数据源的连接字符串设置为后面代码的一部分。
因此,如果您当前有这样的数据源:
<asp:sqldatasource id="SqlDataSource1"
SelectCommand="SELECT ... FROM ..."
ConnectionString="<%$ ConnectionStrings:ConvMapping.Properties.Settings.codes %>"
runat="server"/>
您可以完全删除该属性:
<asp:sqldatasource id="SqlDataSource1"
SelectCommand="SELECT ... FROM ..."
runat="server"/>
然后您的页面加载将包括以下内容:
SqlDataSource1.ConnectionString = string.Format(Properties.Settings.Default.codes, Request.QueryString["County"]);