ASP.NET(C#)后台可以读取传来的数据,但前台SQL无法使用
ASP向ASP.NET(C#)传来的参数是
TEST.ASPX?name=%sdE1%DCW2....
在ASP.NET后台可以正确读出传来的NAME,句子如下
string department=HttpUtility.UrlDecode(Request.QueryString["name"],System.Text.Encoding.Default);
Label1.Text = name;
ASP.NET前台写出了SQL查询语句
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:sqlConnectionString %>"
SelectCommand="SELECT * FROM [Table] WHERE [name] = @name"
<SelectParameters>
<asp:QueryStringParameter Name="name" QueryStringField="name" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
但是好像WHERE后面的句子有问题,查不到数据,请高手开导一下,谢谢
[解决办法]
//我好像忘记了拼凑SQL查询语句时,如果查询条件中有列是字符串或日期类型的话,需要加上单引号了
this.SqlDataSource1.SelectCommand="SELECT * FROM [Table] WHERE [name] = "+HttpUtility.UrlDecode(Request.QueryString["name"],System.Text.Encoding.Default);
换成
this.SqlDataSource1.SelectCommand="SELECT * FROM [Table] WHERE [name] = "+"'"+HttpUtility.UrlDecode(Request.QueryString["name"],System.Text.Encoding.Default)+"'";
//我这样写可能你看得清楚一些
this.SqlDataSource1.SelectCommand=string.Format("SELECT * FROM [Table] WHERE [name] = '{0}'",HttpUtility.UrlDecode(Request.QueryString["name"],System.Text.Encoding.Default));//{0}是一个占位符,拼凑内容,用这个官方的方法比较方便