`

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控件使用灵活,还有很多方法,可以参照系统提供的事件进行学习。

分享到:
评论

相关推荐

    c#的gridview应用

    在本教程中,我们将深入探讨如何使用C#来应用GridView,以及如何与SqlDataSource配合以实现数据的检索、显示、编辑和删除。 首先,GridView控件允许开发人员以表格形式展示数据,支持分页、排序、筛选等多种功能,...

    C# gridview 应用实例

    在.NET框架中,C#的GridView控件是一个非常强大的数据展示工具,广泛应用于网页和桌面应用的开发。它能够方便地展示数据集、数据库表或其他数据源中的信息,并且提供了丰富的功能,如排序、分页、筛选、编辑、删除等...

    ajaxpro无刷新,分页更新repeater_GridView数据源.rar

    9. **data目录**: 可能包含了示例的数据文件,用于填充Repeater和GridView。可能是CSV、XML、SQL数据库备份等形式,供应用程序读取和展示数据。 综上所述,这个压缩包文件的内容展示了如何使用AjaxPro库实现在ASP...

    DevExpress GridControl GridView新增行数据解决方案

    DevExpress GridControl GridView是一款强大的数据网格控件,常用于Windows Forms和ASP.NET应用程序中,提供丰富的数据展示和操作功能。在开发过程中,我们可能会遇到在GridView中添加新行数据时遇到数据为空或者...

    C#操作gridview

    总结,C#操作GridView涉及了数据绑定、数据展示、用户交互、数据操作等多个方面,理解并熟练掌握这些知识点,能帮助开发者构建出功能强大、用户体验良好的Web应用数据展示界面。通过不断实践和学习,开发者可以...

    C#三层架构增删改查gridview应用代码提示框

    通过这个简单的项目,你可以学习到如何组织和实施一个基于C#的三层架构应用,以及如何利用gridview进行数据操作。同时,异常处理和合适的代码结构能帮助你更好地理解和调试代码,提高开发效率。

    GridView内嵌套使用GridView

    `Web.config`文件可能包含关于数据库连接的信息,而`App_Data`文件夹可能存放数据库文件。在`Default.aspx.cs`后台代码中,我们为主GridView(gvMain)和子GridView(gvChild)设置数据源,可能如下所示: ```...

    c# asp.net gridview数据绑定

    在C#编程环境下,与ASP.NET结合,GridView控件提供了强大的数据绑定功能,使得我们可以方便地将数据库中的数据展示在网页上。本篇文章将详细探讨“C# ASP.NET GridView数据绑定”这一主题。 1. **数据源** 在进行...

    GridView正反排序(C#)

    ### GridView正反排序(C#) 在Web开发中,特别是ASP.NET Web Forms中,`GridView` 控件被广泛用于展示和管理数据库中的数据。通过简单的配置,`GridView` 可以实现对数据的增删改查、分页以及排序等功能。其中,排序...

    C#GridView的例题

    可以使用`&lt;asp:GridView&gt;`标签的`DataSourceID`属性进行控件绑定,或者在代码后面使用`GridView1.DataSource = dataObject;`和`GridView1.DataBind();`进行程序绑定。 3. ** 自定义列**: 你可以根据需要自定义...

    C# GridView批量删除记录

    C# GridView 批量删除记录 GridView 批量删除记录是 GridView 控件的一个常用功能,它允许用户选择要删除的记录,然后批量删除这些记录。实现这个功能需要使用复选框选择记录,然后通过确认对话框删除记录。 ...

    基于C#+ASP.NET实现对GridView 控件的增加/删除/修改/选择综合程序例子源码

    在这个基于C#和ASP.NET的程序例子中,我们将深入探讨如何利用GridView控件实现数据的增删改选操作。 首先,GridView的使用通常涉及到数据源的绑定。在C#中,你可以通过DataSource属性将数据绑定到GridView。数据源...

    GridView固定表头和列 实例(GridView冻结表头和列)

    在ASP.NET开发中,GridView控件是用于展示数据表格的常用工具,尤其在处理大量数据时,它提供了灵活的配置和样式化选项。...记住,每个项目都有其独特的需求,因此在应用这些技术时,需要根据实际情况进行调整和优化。

    vs c# gridview以及图片比对

    在C#编程中,GridView控件是Windows Forms和ASP.NET应用程序中常用的数据展示工具,它允许用户以表格形式查看和操作数据。在这个场景中,我们关注的是如何在GridView中进行操作,并结合App.config文件来设置数据库...

    GridView嵌套应用实例GridView嵌套应用实例

    这就是所谓的“GridView嵌套应用”。 在ASP.NET中,GridView嵌套通常是通过在模板字段(TemplateField)中添加另一个GridView来实现的。首先,我们需要创建一个外层GridView,然后在某个特定行的TemplateField中...

    C#有关GridView的用法

    综上所述,C#中的GridView控件是一个强大且灵活的数据展示工具,适用于各种Web应用程序。熟练掌握其用法,能够极大地提升开发效率和用户体验。在实际应用中,开发者可以根据需求,结合其他控件和功能,构建出复杂的...

    C# GridView 例子编辑更新删除功能

    在C#编程中,GridView控件是ASP.NET Web Forms中常用的数据展示组件,它能够方便地展示数据库中的数据,并提供编辑、更新和删除等交互功能。在这个"C# GridView 例子编辑更新删除功能"中,我们将深入探讨如何实现...

    Gridview实例C#

    在.NET框架中,GridView控件是ASP.NET网页开发中用于数据展示的重要组件,...通过实践这些示例,开发者能够熟练掌握在ASP.NET应用中使用GridView控件的方法,提高开发效率,为用户提供更直观、交互性强的数据展示体验。

    C#中GridView使用大全

    在"GridView使用大全.doc"文档中,可能包含了更多详细示例和实战技巧,对于学习和提升C#开发中GridView的应用具有很大帮助。通过深入学习和实践,开发者可以充分利用GridView的功能,创建出用户友好的数据展示和操作...

Global site tag (gtag.js) - Google Analytics