专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > ASP.NET

ASP.NET(C#)后台可以读取传来的数据,但前台SQL无法使用,该怎么解决

发布时间:2011-06-22 17:14:46 文章来源:www.iduyao.cn 采编人员:星星草
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}是一个占位符,拼凑内容,用这个官方的方法比较方便
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: