帮帮我纠正程序中的SQL语句,很急!!!!!
这是我的程序的一部分,请精通SQL语句的朋友帮忙修该一下
string str="select * from Books where ";
string b_Name=Session["bookName"].ToString().Trim();
string b_Author=Session["bookAuthor"].ToString().Trim();
string b_SNumber=Session["bookPublisher"].ToString().Trim();
string b_ISBN=Session["bookSNumber"].ToString().Trim();
string b_Publisher=Session["bookISBN"].ToString().Trim();
//以上是从另一个页面中的文本框取的值,不懂.net 的理解成赋值就可以拉
string b_condition1=Session["loger1"].ToString().Trim();
string b_condition2=Session["loger2"].ToString().Trim();
string b_condition3=Session["loger3"].ToString().Trim();
string b_condition4=Session["loger4"].ToString().Trim();
//这个跟上面的差不多,只是这四个得到的是值是 AND/OR/NOT中的一个
if(b_Name!="")
{
str+="BookName like '%"+b_Name+"%'";
}
if(b_Author!="")
{
str+=" "+b_condition1+" Author like '%"+b_Author+"%'";
}
if(b_SNumber!="")
{
str+=" "+b_condition2+" SortNumber like '%"+b_SNumber+"%'";
}
if(b_ISBN!="")
{
str+=" "+b_condition3+" ISBN like '%"+b_ISBN+"'%'";
}
if(b_Publisher!="")
{
str+=" "+b_condition4+" Publisher like '%"+b_Publisher+"%'";
}
在运行时程序的出错信息是"在关键字 'AND' 附近有语法错误",
问题点数:20、回复次数:6Top
1 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-12-02 21:32:46 得分 10
你那个str在运行的时候是什么?调试一下看看Top
2 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-12-02 21:41:49 得分 0
你这样写,如果b_Name=""且b_Author!=""呢,显然就错了
Top
3 楼beger(乞者)回复于 2005-12-02 22:26:40 得分 0
to lw1a2(一刀 lw1a21@hotmail.com):如果按你的想法,那我该怎么改啊?Top
4 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-12-03 08:38:02 得分 0
if(b_Name!="")
{
str+="BookName like '%"+b_Name+"%'";
}
else
{
str+=" (1=1) ";
}
if(b_Author!="")
{
str+=" "+b_condition1+" Author like '%"+b_Author+"%'";
}
else
{
str+=" (1=1) ";
}
if(b_SNumber!="")
{
str+=" "+b_condition2+" SortNumber like '%"+b_SNumber+"%'";
}
else
{
str+=" (1=1) ";
}
if(b_ISBN!="")
{
str+=" "+b_condition3+" ISBN like '%"+b_ISBN+"'%'";
}
else
{
str+=" (1=1) ";
}
if(b_Publisher!="")
{
str+=" "+b_condition4+" Publisher like '%"+b_Publisher+"%'";
}
Top
5 楼mqmmx(魂之结界)回复于 2005-12-03 09:24:53 得分 10
bool tj = false
if(b_Name!="")
{
str+="BookName like '%"+b_Name+"%'";
tj = true;
}
if(b_Author!="")
{
str+= tj ? " and " : " " +b_condition1+" Author like '%"+b_Author+"%'";
tj = true;
}
if(b_SNumber!="")
{
str+=tj ? " and " : " "+b_condition2+" SortNumber like '%"+b_SNumber+"%'";
tj = true;
}
if(b_ISBN!="")
{
str+=tj ? " and " : " "+b_condition3+" ISBN like '%"+b_ISBN+"'%'";
tj = true;
}
if(b_Publisher!="")
{
str+=tj ? " and " : " "+b_condition4+" Publisher like '%"+b_Publisher+"%'";
tj = true;
}Top
6 楼mqmmx(魂之结界)回复于 2005-12-03 09:26:00 得分 0
还有.net中不希望string字符串用+号,你这样写很费内存。Top




