如何使用GridView显示条件查询的结果!

dreams1981 2006-10-19 06:32:09
请问如何使用GridView显示条件查询的结果!,我是想实现根据下拉菜单的选项作为字段名,然后根据一个TextBox里的值进行模糊查询.

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
<asp:ListItem Selected="True">au_lname</asp:ListItem>
<asp:ListItem>phone</asp:ListItem>
<asp:ListItem>city</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  
<asp:Button ID="search" runat="server" Text="搜索" />
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>" SelectCommand="SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract FROM authors where @title like '%'+@keyword+'%'">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="title" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="TextBox1" DefaultValue=" " Name="keyword" PropertyName="Text" />
</SelectParameters>
</asp:SqlDataSource>

/////////////////////////////////////////////////////
web.config里的连接串为:
<add name="pubsConnectionString" connectionString="Data Source=.;Initial Catalog=pubs;Integrated Security=True" providerName="System.Data.SqlClient"/>
/////////////////////////////////////////
上面不能显示任何查询结果,应该怎么写!
...全文
461 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreams1981 2006-10-20
  • 打赏
  • 举报
回复
CREATE PROCEDURE GridView_Select
@title nvarchar(50),
@key nvarchar(50)
AS
select au_id,au_lname,au_fname,phone,address,city,state,zip,contract
from authors
where @title like '%@key%'
GO
===========================
@title这里还是有问题,@title应该定义为什么类型?
dreams1981 2006-10-20
  • 打赏
  • 举报
回复
pipp(pipp) ( ) 信誉:100 Blog

用存储过程怎样写?就实现我上面得功能
pipp 2006-10-20
  • 打赏
  • 举报
回复
也可以考虑用存储过程来试试
dreams1981 2006-10-20
  • 打赏
  • 举报
回复
xz168888(图灵) ( ) 信誉:100 Blog

能否发一个你在2003中用这种方式小的DEMO给我看看吗?
dreams1981@126.com
pipp 2006-10-20
  • 打赏
  • 举报
回复
建议直接构建Sql
pipp 2006-10-20
  • 打赏
  • 举报
回复
楼上dreams1981(子山)是正解
原因在@title 上
SqlDataSource应该支持参数不支持字段名

可能需要usercontrol
卓哥 2006-10-20
  • 打赏
  • 举报
回复
为了使代码有好的机构最好把对数据的操作和业务分开 我写的那段在2003中就有了不是最新的 我一直用这种方式来过滤数据 这样的写发能少和数据库打交道性能上提高了 不需要获取一个参数就查询一次数据库
dreams1981 2006-10-20
  • 打赏
  • 举报
回复
xz168888(图灵) ( ) 信誉:100 Blog

这是最新的一种写法吧,SqlDataSource在2.0才启动的数据库控件.能用极少的代码,或者无代码(不用自己写)实现数据的绑定的.
卓哥 2006-10-20
  • 打赏
  • 举报
回复
这种在页面写服务器端代码的做法真的看起来头痛 又不安全 建议改成在后台做处理比如根据查询语句返回一个 DataSet然后将GridView的DataSourse指向这个DataSet 你可以用DataSet.Table[0].select("title like"+dropdownlist1.selectValue)来过滤掉不要的数据然后再一起将 DataSourse指向已经过滤好的数据 重新 DataBind()就可以了 看起来舒服 逻辑又好 又方便 既然选择用.NET就不要继续用原来ASP的老做法了
dreams1981 2006-10-19
  • 打赏
  • 举报
回复
hongyin163() ( ) 信誉:100 Blog

@title like '%'+@keyword+'%'"这里是有问题的,但@title这样写是为了获取DropDownList1的electedValue参数的值,写成title的话就只能是固定的字段名了.
同时'%'+@keyword+'%'是没有错的.这是默认的写法!
hongyin163 2006-10-19
  • 打赏
  • 举报
回复
"SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract FROM authors where title like '%"+@keyword+"%'"
注意“号
hongyin163 2006-10-19
  • 打赏
  • 举报
回复
"SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract FROM authors where @title like '%'+@keyword+'%'"
有问题
@title--->title
SELECT au_id, au_lname, au_fname, phone, address, city, state, zip, contract FROM authors where title like '%"+@keyword+"%'"
szc21 2006-10-19
  • 打赏
  • 举报
回复
我没用05,你写的几个控件不熟悉

62,046

社区成员

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

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

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

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