返回SQL语句的问题

萧萧可乐 2012-03-19 07:40:50

try
{
try
{
brand = Request.QueryString["brand"].Trim();
price = Request.QueryString["price"].Trim();
graphics = Request.QueryString["graphics"].Trim();
size = Request.QueryString["size"].Trim();
}
catch (Exception exone)
{

}
DataConn Conn = new DataConn();
if (brand == "" && price == "" && size == "" && graphics == "")
{
sql = "select * from TB_Laptop";
Response.Write("<script>alert('!!!')</script>");
}
else
{
Response.Write("<script>alert('!!!')</script>");
try
{
sql = "select * from TB_Laptop where Type='laptop'";
if (brand != "")
sql += " and SearchBrand='" + brand + "'"; //从这里开始后面的就不执行了。。
Response.Write("<script>alert('1" + sql + "')</script>");
if (price != "")
sql += " and SearchPrice='" + price + "'";
Response.Write("<script>alert('2" + sql + "')</script>");
if (size != "")
sql += " and SearchSize='" + size + "'";
Response.Write("<script>alert('3" + sql + "')</script>");
if (graphics != "")
sql += " and SearchGraphics='" + graphics + "'";
Response.Write("<script>alert('4" + sql + "')</script>");
}
catch (Exception extwo) {
Response.Write("<script>alert('" + extwo.Message + "')</script>");
}
}
Response.Write("<script>alert('!!!')</script>");
Conn.ExcuteSearch(sql);
DT = new DataTable();
DT = Conn.MyDT;
if (DT.Rows.Count < 1)
{
Response.Write("<script>alert('抱歉,我们暂时还未收录您所筛选的商品!感谢您对我们的支持!')</script>");
}
else
{
DataList1.DataSource = DT;
DataList1.DataBind();
}
}
catch (Exception ex) {
Response.Write("<script>alert('"+ex.Message+"')</script>");
}

问题 我的SQL+=操作有问题?
正确的写法是啥?
...全文
181 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
萧萧可乐 2012-03-20
  • 打赏
  • 举报
回复
感谢各位的答复
问题后来自己查出来了。。。
小弟做事太2了
这个代码本身没问题
我另外一个页面的***.aspx?**&**&也是用+=构造的 因此有的时候brand没赋值 直接跳转过来的
所以。。。
brand = Request.QueryString["brand"].Trim();
price = Request.QueryString["price"].Trim();
graphics = Request.QueryString["graphics"].Trim();
size = Request.QueryString["size"].Trim();
有的会取不到 然后try..catch 遇到错误它就不会往下执行了。。。
再次感谢大家热情的回答 谢了
yyl8781697 2012-03-19
  • 打赏
  • 举报
回复
if (brand != "")
sql += " and SearchBrand='" + brand + "'"; //从这里开始后面的就不执行了。。
LZ 你在这里断点测试一下,看看brand的值
  • 打赏
  • 举报
回复
SearchPrice字段的数据类型是否是varchar?如不是,应该去掉引号,即:

sql += " and SearchPrice=" + price;

其他字段的数据类型也检查一下
EnForGrass 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nihaox1 的回复:]

直接赋值就是对的。。。
还是
sql = "select * from TB_Laptop where Type='laptop'";
if (brand != "")
sql += " and SearchBrand='" + brand + "'"; //从这里开始后面的就不执行了。。 ……
[/Quote]
什么意思?不管if (brand != "")条件满不满足都会执行后面的语句啊,怎么会不执行?你说的不执行是什么意思
萧萧可乐 2012-03-19
  • 打赏
  • 举报
回复
直接赋值就是对的。。。
还是
sql = "select * from TB_Laptop where Type='laptop'";
if (brand != "")
sql += " and SearchBrand='" + brand + "'"; //从这里开始后面的就不执行了。。
这里有问题
萧萧可乐 2012-03-19
  • 打赏
  • 举报
回复
我先直接用SQL赋值 试试 看看结果是啥
等下回来汇报
萧萧可乐 2012-03-19
  • 打赏
  • 举报
回复
有返回数据 但是数据返回的不对要求
只能检索到brand 后面的PRICE什么都检索不到
孟子E章 2012-03-19
  • 打赏
  • 举报
回复
如果你觉得没返回数据,你可以把你的sql代码放在查询分析器里面去执行测试
孟子E章 2012-03-19
  • 打赏
  • 举报
回复
没错就可以了,你要问什么?
dalmeeme 2012-03-19
  • 打赏
  • 举报
回复
设个断点调试一下,看看各变量的值,找出原因。
萧萧可乐 2012-03-19
  • 打赏
  • 举报
回复
试过了
alert(sql) 没错误的说
孟子E章 2012-03-19
  • 打赏
  • 举报
回复
如果没有特殊字符,数据类型匹配,没有问题。
你可以Response.Write(sql)看是否是合法的sql语句

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧