如何在select * from variable
查询中将Request.QueryString设置为变量?
以下是我尝试这样做的方法:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>" SelectCommand="SELECT [pm1], [s1], [i1], [j1] FROM ([pk1] = @pk1)">
<SelectParameters>
<asp:QueryStringParameter Name="pk1" QueryStringField="pk1" DbType = "String" Direction = "Input" />
</SelectParameters>
</asp:SqlDataSource>
但是这给了我以下错误:
'='附近的语法不正确。
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.Data.SqlClient.SqlException:不正确 '='附近的语法。
答案 0 :(得分:0)
使用此代码段在查询中获取QueryString值。
//get the value from the querystring
string qsValue = Request.QueryString["pk1"];
//create a new SqlDataSource instance
SqlDataSource source = new SqlDataSource();
//add the connectionstring to the source
source.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ToString();
//create the query with the selectparameter
source.SelectCommand = "SELECT s1, i1, j1 FROM myTable WHERE (pk1 = @pk1)";
//replace the parameter with the value from the querystring
source.SelectParameters.Add("pk1", qsValue);
//bind the gridview
GridView1.DataSource = source;
GridView1.DataBind();