由于条件太多,做起来很麻烦.
现在的做法是判断输入条件的输入框是否为空来确定这个条件是不是起作用,如果输入框有输入的话在生成SQL语句的时候就加入此条件.现在有一个问题是在什么时候加上where关键字呢,如果在判断是否加上最后一个条件的时候先得判断前面的条件输入框是不是为空.这样做起来很费事的.
哪位有好的方法呢,提供现成例子的给高分
现在的做法是判断输入条件的输入框是否为空来确定这个条件是不是起作用,如果输入框有输入的话在生成SQL语句的时候就加入此条件.现在有一个问题是在什么时候加上where关键字呢,如果在判断是否加上最后一个条件的时候先得判断前面的条件输入框是不是为空.这样做起来很费事的.
哪位有好的方法呢,提供现成例子的给高分
@AA NVARCHAR(30)
,@BB INT
AS
DECLARE @WhereStr NVARCHAR(1000)
SELECT @WhereStr=''
IF (@AA <>'')
BEGIN
SELECT @WhereStr = @WhereStr + ' AND AA = ''' + rtrim(@AA) + ''''
END
IF (@BB<>0)
BEGIN
SELECT @WhereStr = @WhereStr + ' AND BB= ''' + CAST(@BB as nvarchar) + ''''
END
EXEC ('SELECT * FROM Table WHERE 2>1 ' + @WhereStr)
string condition="";
if(this.TextBox1.Text.Trim() != "")
condition += "and f1='" + this.TextBox1.Text.Trim() + "' ";
else if(this.TextBox2.Text.Trim() != "")
condition += "and f2='" + this.TextBox2.Text.Trim() + "' ";
.......
if(condition.Length != 0)
{
condition = "where " + condition.SubString(3,condition.Length-3);
}
string strSQL = sql1 + condition;
string sql = "select * from table1 where name like '" + TextBox1.Text + "'";
这样的规则很多软件都采用,例如CSDN,又如oracle的CRM,...有它的好处,这里就不深究了
所以说,我的观点,简单的方法,没有:)