用SQL完成條件式查詢
2010-04-08 00:00:00 来源:WEB开发网如果是以前的我,我會這樣寫,落落長看的都累了,下一個範例展表直接在SQL中作掉。
範例二 更方便的寫法
1: string sql = string.Format("SELECT * FROM Sales.SalesOrderDetail WHERE" +
2: "('{0}' = '' OR SalesOrderID = '{0}') AND " +
3: "('{1}' = '' OR ProductID = '{1}') AND " +
4: "('{2}' = '' OR ModifiedDate > '{2}') AND " +
5: "('{3}' = '' OR ModifiedDate < '{3}')",
6: Order.Text, Produce.Text, StartDate.Text, EndDate.Text);
這個方法是不是寫起來簡單,看起來乾淨,其作用為('' = '' OR SalesOrderID = '')參數是空的不查詢,('12345' = '' OR SalesOrderID = '12345')參數不是空的執行查詢。
應用一 SqlDataSource中使用
1: <asp:SqlDataSource ID="SqlDataSource" runat="server" CancelSelectOnNullParameter="false"
2: SelectCommand="SELECT * FROM Sales.SalesOrderDetail WHERE
3: (@Order IS NULL OR SalesOrderID = @Order) AND
4: (@Produce IS NULL OR ProductID = @Produce) AND
5: (@StartDate IS NULL OR ModifiedDate > @StartDate) AND
6: (@EndDate IS NULL OR ModifiedDate < @EndDate)">
7: <SelectParameters>
8: <asp:ControlParameter ControlID="Order" Name="Order" ConvertEmptyStringToNull="true" />
9: <asp:ControlParameter ControlID="Produce" Name="Produce" ConvertEmptyStringToNull="true"/>
10: <asp:ControlParameter ControlID="StartDate" Name="StartDate" ConvertEmptyStringToNull="true"/>
11: <asp:ControlParameter ControlID="EndDate" Name="EndDate" ConvertEmptyStringToNull="true"/>
12: </SelectParameters>
13: </asp:SqlDataSource>
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接