如何实现自定义查询

heyinglin 2009-04-09 03:59:25
asp.net2.0 如何查询条件自定义。我的数据表有很多字段,但用户要查询的字段不明确,需要根据用户的需要实现查询条件的自定义。请问如何实现?最好有代码。谢谢。
...全文
394 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
strustfan 2011-08-31
  • 打赏
  • 举报
回复
学习看帖
闲着吃菜 2011-07-13
  • 打赏
  • 举报
回复
学习回帖~
luingcn 2011-05-28
  • 打赏
  • 举报
回复
学习看帖
Lovely_baby 2009-09-16
  • 打赏
  • 举报
回复
写存储过程吧
使用模糊查询
JavaAlpha 2009-09-16
  • 打赏
  • 举报
回复
偶也遇到和你类似的问题了
推荐你去这里看看那

http://topic.csdn.net/u/20090915/14/c5a74a4e-5608-49f0-89b5-cee399ec8882.html
heyinglin 2009-04-10
  • 打赏
  • 举报
回复
好像这个是很普遍的需求啊,为什么就没有人把这样的需求做成控件或现成的产品!正胸闷!
cookies10wen 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 heyinglin 的帖子:]
我的数据表有很多字段,但用户要查询的字段不明确,需要根据用户的需要实现查询条件的自定义。[/Quote]

用CheckBox加Textbox..用户需要查询的打上勾写上条件...
heyinglin 2009-04-10
  • 打赏
  • 举报
回复
大家都是在数据库端帮我想办法,可是我希望在asp.net2.0的页面通过ajax技术把用户自己定义的条件生成SQL语句,再进行数据库读取,这样难度是否很大?有谁实现过,给个代码参看一下。谢谢!!!
opou 2009-04-09
  • 打赏
  • 举报
回复
用存储过程
fwqkey 2009-04-09
  • 打赏
  • 举报
回复
老早前做过的,貌似很简单啊,不难吧。。
  • 打赏
  • 举报
回复
设模糊查询一切
walkghost 2009-04-09
  • 打赏
  • 举报
回复
MARK!
conan304 2009-04-09
  • 打赏
  • 举报
回复
--1. 使用 EXEC 实现的动态参数存储过程
CREATE PROC p_test
@para1 varchar(10)=null,
@para2 varchar(10)=null,
@para3 varchar(10)=null,
@para4 varchar(10)=null
AS
SET NOCOUNT ON
DECLARE @sql varchar(8000)
SET @sql='SELECT * FROM tbname WHERE 1=1'
IF @para1 IS NOT NULL
SET @sql=@sql+' AND col1='''+@para1+''''
IF @para2 IS NOT NULL
SET @sql=@sql+' AND col2='''+@para2+''''
IF @para3 IS NOT NULL
SET @sql=@sql+' AND col3='''+@para3+''''
IF @para4 IS NOT NULL
SET @sql=@sql+' AND col4='''+@para4+''''
EXEC(@sql)
GO


/*======================================================*/

--2. 使用 sp_executesql 实现的动态参数存储过程
CREATE PROC p_test
@para1 varchar(10)=null,
@para2 datetime=null,
@para3 varchar(10)=null,
@para4 int=null
AS
SET NOCOUNT ON
DECLARE @sql nvarchar(4000)
SET @sql='SELECT * FROM tbname WHERE 1=1'
+CASE WHEN @para1 IS NULL THEN '' ELSE ' AND col1=@para1' END
+CASE WHEN @para2 IS NULL THEN '' ELSE ' AND col2=@para2' END
+CASE WHEN @para3 IS NULL THEN '' ELSE ' AND col3=@para3' END
+CASE WHEN @para4 IS NULL THEN '' ELSE ' AND col4=@para4' END
EXEC sp_executesql @sql,N'
@para1 varchar(10)=null,
@para2 datetime=null,
@para3 varchar(10)=null,
@para4 int=null
',@para1,@para2,@para3,@para4
GO


/*======================================================*/

--3. 不使用动态 Transact-SQL 语句实现的动态参数存储过程
CREATE PROC p_test
@para1 varchar(10)=null,
@para2 datetime=null,
@para3 varchar(10)=null,
@para4 int=null
AS
SET NOCOUNT ON
SELECT * FROM tbname
WHERE (@para1 IS NULL OR col1=@para1)
AND (@para2 IS NULL OR col2=@para2)
AND (@para3 IS NULL OR col3=@para3)
AND (@para4 IS NULL OR col4=@para4)
heyinglin 2009-04-09
  • 打赏
  • 举报
回复
那位高手能提供一下asp.net2.0的代码。谢谢!!!
xsm545 2009-04-09
  • 打赏
  • 举报
回复
回帖是一种美德!
wucy2008 2009-04-09
  • 打赏
  • 举报
回复
Create PROCEDURE Search
@table1 nvarchar(20),
@table2 nvarchar(20),
@columna nvarchar(40),
@columnb nvarchar(40),
@column1 nvarchar(40),
@column2 nvarchar(40),
@one nvarchar(40),
@two nvarchar(40)
AS
BEGIN
declare @Sql nvarchar(1000)
set @Sql='select * from '+@table1+' a,'+@table2+' b
where a.'+@columna+'=b.'+@columnb+'
and b.'+@column1+' like ''%'+@one+'%'' and b.'+@column2+' like ''%'+@two+'%'''
print @Sql
exec(@Sql)
END
cyz9977 2009-04-09
  • 打赏
  • 举报
回复
你去看看智聯啊 51job啊
他們上面都有多條件查詢,參考一下~~
BossFriday 2009-04-09
  • 打赏
  • 举报
回复
就是界面上摆一堆的DropDownList(DDL)
根据:字段DDL + 逻辑DDL + 查询值
就能拼接出你要的sql了.
这样的东西,你可以写成一个用户控件.
暴露一些属性(比如TableName),增加一些动态功能(比如增加查询条件)

就可以共用了,不然每次搞一样的东西,会死人的.
Jerry_hu 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 heyinglin 的回复:]
asp.net页面如何实现?
[/Quote]
label,textbox,dropdownlist等若干,button 2 查询和重置,gridview 1
加载更多回复(2)

62,268

社区成员

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

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

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

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