1.数据绑定
a.编辑列
在Windows窗体上新建一个DataGridView,修改名称为dg_user,选中dg_user,右击鼠标,选择“编辑列”,添加列user_id,user_name,plant_name,如图:
注意:DataPropertyName应和SQL语句查询的字段名保持一致,HeaderText为界面显示的列名,Visible表示界面是否显示该列(例如ID列一般不需要显示给用户,但是可能会作为删除等操作的行标,所以将该列设置为隐藏列)。
b.连接数据库
获取与数据库的连接,通过SQL查询语句查询表ljj_usertable 中user_id, user_name, plant_name 字段的信息,存储在DataTable 中,代码如下:
public DataTable get_users() { OracleConnection conn = null; OracleTransaction tran = null; OracleCommand cmd = null; try { StringBuilder str = new StringBuilder(); str.Append("select user_id,user_name,plant_name from ljj_usertable "); conn = new OracleConnection("Data Source=XX;Persist Security Info=True;User ID=XXX;Password=XXXX"); conn.Open(); tran = conn.BeginTransaction(); cmd = new OracleCommand(str.ToString(), conn, tran); DataSet ds = new DataSet(); OracleDataAdapter oda = new OracleDataAdapter(cmd); oda.Fill(ds); DataTable dt = ds.Tables[0]; tran.Commit(); conn.Close(); return dt; } catch (Exception e) { throw e; } finally { if (null != conn) conn.Close(); } }
c.数据显示
将方法get_users()获得的DataTable 显示在data_gridview中,代码如下:
public void show_users() { this.dg_user.DataSource = this.get_users().DefaultView; this.dg_user.Refresh(); }
刷新表格时运行方法show_users(),数据库表相应的数据就显示在data_gridview中啦。
2.将data_gridview中的数据导出为excel文件
a.筛选有效数据
获取datagridview中的数据保存在EXCEL文件中,一般情况下,隐藏列是程序员使用的,不需要展现给用户,所以保存在EXCEL文件中的数据需要去掉隐藏列,方法如下:
public DataTable SiftData(DataGridView datagridview) { try { DataTable dt = new DataTable(); DataTable columnname_Table = new DataTable(); for (int column = 0; column < datagridview.Columns.Count; column++) { if (datagridview.Columns[column].Visible == false) { continue; } dt.Columns.Add( new DataColumn(datagridview.Columns[column].HeaderText, typeof(string))); columnname_Table.Columns.Add(new DataColumn(datagridview.Columns[column].Name, typeof(string))); } for (int row = 0; row < datagridview.Rows.Count; row++) { if (datagridview.Rows[row].Visible == false) { continue; } DataRow tempRow = dt.NewRow(); for (int i = 0; i < dt.Columns.Count; i++) { tempRow[i] = datagridview.Rows[row].Cells[columnname_Table.Columns[i].ColumnName].Value; } dt.Rows.Add(tempRow); } return dt; }
b.将得到的数据导出为excel表格
首先在窗口上添加一个控件SaveFileDialog,命名为sdg_filename,
代码结构分四步:
(1)设置工作簿,工作表和单元格;
(2)根据datatable中的数据向excel表中写入列名
(3)写入数据
(4)保存文件
代码如下:
private void exportExcelByTable(DataTable dataTable) { try { int colIndex = 0; Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(); Aspose.Cells.Worksheet sheet = workbook.Worksheets[0]; Aspose.Cells.Cells cells = sheet.Cells; foreach (DataColumn dc in dataTable.Columns) { cells[0, colIndex].PutValue(dc.ColumnName); colIndex++; } for (int i = 0; i < dataTable.Rows.Count; i++) { for (int j = 0; j < dataTable.Columns.Count; j++) { cells[i + 1, j].PutValue(dataTable.Rows[i][j].ToString()); } } sdg_filename.Filter = " xls files(*.xls)|"; sdg_filename.FileName = DateTime.Now.ToString("yyyyMMdd") + "-" + "用户信息表.xls"; sdg_filename.FilterIndex = 2; sdg_filename.RestoreDirectory = true; if (sdg_filename.ShowDialog() == DialogResult.OK) { workbook.Save(sdg_filename.FileName.ToString()); } } catch (Exception e) { throw e; } }
运行函数:exportExcelByTable(SiftData(this.dg_user));
c.打开文件
System.Diagnostics.Process.Start(sdg_filename.FileName);
打开文件可以和保存文件写在一起,这样保存成功就直接打开了,非常实用。
到这里,DataGridView的绑定数据和导出数据就介绍完了,DataGridView控件使用灵活,还有很多方法,可以参照系统提供的事件进行学习。
相关推荐
GridView水平滚动源码 源码描述: 当GridView中字段很多屏幕放不下的时候, 我们可以考虑给GridView加入水平滚动条来展示数据来自51ASPX。 Add Jquery reference to the ...Populate the Gridview with dummy data.
•C#.NET - Client-side example which includes: MasterPage, UpdatePanel, GridView editing, paging and sorting, accessing data via the SqlDataSource control. •VB.NET - Client-side example accessing ...
C#.NET - Client-side example which includes: MasterPage, UpdatePanel, GridView editing, paging and sorting, accessing data via the SqlDataSource control. VB.NET - Client-side example accessing data ...
GridView: /// /// gvUserManage 索引当前页更改时激发 /// /// <param name="sender"></param> /// <param name="e"></param> protected void gvUserManage_PageIndexChanging(object sender, ...
导出Excel在很多项目中经常用到,本人介绍了C#实现GridView导出Excel实例代码,也全当给自己留下个学习笔记了。 using System.Data; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; ...
使用C#上传并读取EXCEL的数据,显示到GridView中,参考附件,简单片段如下: if (extension == ".xls") { //IMEX=1表示将所有的列全部视为文本。省略时,excel中包含 汉字 和 数字,数字会读取不出来。 //HDR表示...
创建自定义菜单右键 1. 当鼠标悬浮到控件对象上, 右击, 会弹出此自定义控件. ...结合GridView使用的自定义控件,App_code/data.cs文件为数据生成文件PopupMenu_InGridView为演示文件夹、TraceMenu为自定义组建源码
C#.NET - Client-side example which includes: MasterPage, UpdatePanel, GridView editing, paging and sorting, accessing data via the SqlDataSource control. VB.NET - Client-side example accessing data ...
AddToCart.aspx页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddToCart.aspx.cs" Inherits="AddToCart" %><!DOCTYPE ...
本文实例讲述了C#导出GridView数据到Excel文件类。分享给大家供大家参考。具体如下: 这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件 using System; using System.Web; using System.Web.UI; ...
使用ObjectDataSource和Gridview自定义分页,采用Microsoft.Practices.EnterpriseLibrary.Data4.1操作数据库
GridViewDataKey类的使用(C#) GridViewDataKey类的使用(C#) GridViewDataKey类的使用(C#) GridViewDataKey类的使用(C#)
@ Page Language=”C#” AutoEventWireup=”true” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> [removed] // 计算...
<%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.OleDb" %><!DOCTYPE ...
<asp:GridView ID="GridView1" runat="server" GridLines="Vertical" BorderColor="white" Width="100%" AllowSorting="true" AutoGenerateColumns="false" AllowPaging="True"> ...
this essential resource offers both C# and VB examples throughout the book, and shares new and updated content on the ADO.NET Entity Framework, ADO.NET Dynamic Data, and ADO.NET Data Services. ...
二、AspNetPager支持各种数据绑定控件GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件的分页功能十分强大。 三、AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的...
RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 FTPClient FTPClient--FTP操作帮助类,FTP上传,FTP下载,FTP文件操作,FTP目录操作 FTPHelper ...
第1章(\C01) 示例描述:本章讲解了如何使用C#开发第一个应用程序。 Web应用程序 用C#开发的第一个Web应用程序。 Windows应用程序 用C#开发的第一个Windows应用程序。 <br>第3章(\C03) 示例...
931 Data gridview控件简介 219 932 Datagridview控件的使用. 221 9 综合示例 226 仟务实训部分.… 229 1:航班查询窗体设计 29 2:显示所有航班信息 232 3:根据两地査询航班 .233 4:航班详细信息查询 234 巩固练习 ...