现在的位置: 首页 > 综合 > 正文

c#窗体编程和web编程中实现datagridview和gridview数据的检索

2013年09月22日 ⁄ 综合 ⁄ 共 1969字 ⁄ 字号 评论关闭

记得要引入头文件using system.data.sqlclient

  首先我们看看窗体编程中,运用DataGridView和bingingsource以及Dataset。首先要取得Dataset,这个老生长谈了吧。。

比如 sqlconnection con=new sqlconnection(......此处省略); 然后  sqladapter   adapter=new sqladpter ("此处为select语句",conn);

dataset data=new dataset();

adapter.fill(data);这个地方有多种重载,可以给返回的表取个相应的名字,便于索引.

譬如adapter.fill(data,"userinfo");

data.tables["userinfo"]就是这张表了。不然的你就要用数字索引。data.tables[0],当然了这个顺序和你fill的顺序有关,你懂的。

其次我们来看下bingingsource的设置,好吧上图

这个我是拖得控件,手写也一样,这个datasource 是一个DataSet,DataMember是其中的一个表。

最后再看看DataGridView的绑定,直接把这个bingingsource和dataGridview进行绑定。

最后看看有关检索过滤的

然后设置bingingsource的过滤器.大功告成.

其实最主要的就是过滤器设置。。这个是模糊查找。


然后再看看asp.net gridview的过滤吧。

需要的空件sqldatasource  和gridview.

首先看前台

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
FilterExpression=" 课程号 LIKE '{0}%' or 课程名 like '{0}%'"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="select cno '课程号',cname '课程名',cpno '前置课程号',ccredit '学分',chour '学时',cterm '开设学期' from course">
<FilterParameters>
<asp:ControlParameter ControlID="TextBox1" Name="newparameter"
PropertyName="Text" />
</FilterParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="查询"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"
AutoPostBack="True"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</form>

和窗体编程差不多。sqldatasource设置连接字符串。以及select语句。然后再和gridview绑定

这些无论是手写还是直接该属性都是可以的。重要的的是如何实现过滤

主要的是下面的。。。初学还是建议直接修改属性生成吧,我也是初学,无奈,天坑的老师要课设。。

 FilterExpression=" 课程号 LIKE '{0}%' or 课程名 like '{0}%'" 

<FilterParameters>
<asp:ControlParameter ControlID="TextBox1" Name="newparameter"
PropertyName="Text" />
</FilterParameters>

{0}是占位符,跟那个string.format里面的差不多,由于我要在一个textbox中实现对课号或名字的查找就这样写了

然后再textbox中开启autopostback,添加两个事件一个是TextBox1_TextChanged和Button1_Click这样就能实现和窗体检索相同的效果了。

开启自动回发的作用是只要事件发生,便自动回发到服务器端。不然的话你输入相应的值,要双击button回发后,才会看到效果。

这样没有实时效果.

抱歉!评论已关闭.