c#窗体编程和web编程中实现datagridview和gridview数据的检索
记得要引入头文件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回发后,才会看到效果。
这样没有实时效果.