`

C# data_gridview 应用

阅读更多

 

1.数据绑定

a.编辑列

Windows窗体上新建一个DataGridView,修改名称为dg_user,选中dg_user,右击鼠标,选择“编辑列”,添加列user_id,user_name,plant_name,如图:



  

注意:DataPropertyName应和SQL语句查询的字段名保持一致,HeaderText为界面显示的列名,Visible表示界面是否显示该列(例如ID列一般不需要显示给用户,但是可能会作为删除等操作的行标,所以将该列设置为隐藏列)。

b.连接数据库

获取与数据库的连接,通过SQL查询语句查询表ljj_usertabluser_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水平滚动源码2012518

    GridView水平滚动源码 源码描述: 当GridView中字段很多屏幕放不下的时候, 我们可以考虑给GridView加入水平滚动条来展示数据来自51ASPX。 Add Jquery reference to the ...Populate the Gridview with dummy data.

    ASP.NET Gridview隐藏/显示列源码

    •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 ...

    显示隐藏GridView的列

    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 ...

    C# asp.net /分页控件

    GridView: /// /// gvUserManage 索引当前页更改时激发 /// /// &lt;param name="sender"&gt;&lt;/param&gt; /// &lt;param name="e"&gt;&lt;/param&gt; protected void gvUserManage_PageIndexChanging(object sender, ...

    C#实现GridView导出Excel实例代码

    导出Excel在很多项目中经常用到,本人介绍了C#实现GridView导出Excel实例代码,也全当给自己留下个学习笔记了。 using System.Data; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; ...

    上传并读取EXCEL的数据,显示到GridView中

    使用C#上传并读取EXCEL的数据,显示到GridView中,参考附件,简单片段如下: if (extension == ".xls") { //IMEX=1表示将所有的列全部视为文本。省略时,excel中包含 汉字 和 数字,数字会读取不出来。 //HDR表示...

    右击GridView弹出菜单

    创建自定义菜单右键 1. 当鼠标悬浮到控件对象上, 右击, 会弹出此自定义控件. ...结合GridView使用的自定义控件,App_code/data.cs文件为数据生成文件PopupMenu_InGridView为演示文件夹、TraceMenu为自定义组建源码

    显示/隐藏GridView的列源码

    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 ...

    经典cookie购物车源码[GridView实现]

    AddToCart.aspx页面代码 &lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddToCart.aspx.cs" Inherits="AddToCart" %&gt;&lt;!DOCTYPE ...

    C#导出GridView数据到Excel文件类实例

    本文实例讲述了C#导出GridView数据到Excel文件类。分享给大家供大家参考。具体如下: 这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件 using System; using System.Web; using System.Web.UI; ...

    ObjectDataSource和Gridview自定义分页

    使用ObjectDataSource和Gridview自定义分页,采用Microsoft.Practices.EnterpriseLibrary.Data4.1操作数据库

    GridViewDataKey类的使用(C#)

    GridViewDataKey类的使用(C#) GridViewDataKey类的使用(C#) GridViewDataKey类的使用(C#) GridViewDataKey类的使用(C#)

    js实现的GridView即表头固定表体有滚动条且可滚动

    @ Page Language=”C#” AutoEventWireup=”true” %&gt; &lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt; [removed] // 计算...

    简单GridView AJAX局部刷新分页例子

    &lt;%@ Import Namespace="System.Data" %&gt;&lt;%@ Import Namespace="System.Data.OleDb" %&gt;&lt;!DOCTYPE ...

    C# EmptyDataTemplate 列表默认展示表头.pdf

    &lt;asp:GridView ID="GridView1" runat="server" GridLines="Vertical" BorderColor="white" Width="100%" AllowSorting="true" AutoGenerateColumns="false" AllowPaging="True"&gt; ...

    Professional ASP.NET 3.5 SP1 Edition: In C# and VB(part1)

    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. ...

    C#自定义分页控件

    二、AspNetPager支持各种数据绑定控件GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件的分页功能十分强大。 三、AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的...

    C#基类库大全下载--苏飞版

    RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 FTPClient  FTPClient--FTP操作帮助类,FTP上传,FTP下载,FTP文件操作,FTP目录操作 FTPHelper ...

    visual C# 2005 实例

    第1章(\C01) 示例描述:本章讲解了如何使用C#开发第一个应用程序。 Web应用程序 用C#开发的第一个Web应用程序。 Windows应用程序 用C#开发的第一个Windows应用程序。 &lt;br&gt;第3章(\C03) 示例...

    C# Winform数据库应用设计(附开发案例

    931 Data gridview控件简介 219 932 Datagridview控件的使用. 221 9 综合示例 226 仟务实训部分.… 229 1:航班查询窗体设计 29 2:显示所有航班信息 232 3:根据两地査询航班 .233 4:航班详细信息查询 234 巩固练习 ...

Global site tag (gtag.js) - Google Analytics