`
seya
  • 浏览: 359945 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

将datagrid中的数据到处到access中

阅读更多

方法一:导出到csv文件,存放在服务器端任一路径,然后给客户下载

优点:
1、可以进行身份认证后给客户下载,如果放到非web目录就没有对应的url,客户无法随时下载。
2、也是因为生成了文件,所以占用了服务器的空间,但是可以把文件名存放到数据库,再次给客户下载的时候不需要重复生成文件。
3、csv文件是文本文件,逗号隔开字段,回车隔开行,易于数据导入导出。

实现方法:
 
  SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
   SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn);
   DataSet ds=new DataSet();
   da.Fill(ds,"table1");
   DataTable dt=ds.Tables["table1"];
   string name=System.Configuration.ConfigurationSettings.AppSettings["downloadurl"].ToString()+DateTime.Today.ToString("yyyyMMdd")+new Random(DateTime.Now.Millisecond).Next(10000).ToString()+".csv";//存放到web.config中downloadurl指定的路径,文件格式为当前日期+4位随机数
   FileStream fs=new FileStream(name,FileMode.Create,FileAccess.Write);
   StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding("gb2312"));
   sw.WriteLine("自动编号,姓名,年龄");
   foreach(DataRow dr in dt.Rows)
   {
    sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]);
   }
   sw.Close();
   Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name));
   Response.ContentType = "application/ms-excel";// 指定返回的是一个不能被客户端读取的流,必须被下载
   Response.WriteFile(name); // 把文件流发送到客户端
   Response.End();

方法二:导出到csv文件,不存放到服务器,直接给浏览器输出文件流

优点:
1、随时生成,不需要占用资源
2、可以结合身份认证
3、同样利于数据交换

实现方法:
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
   SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn);
   DataSet ds=new DataSet();
   da.Fill(ds,"table1");
   DataTable dt=ds.Tables["table1"];
   StringWriter sw=new StringWriter();
   sw.WriteLine("自动编号,姓名,年龄");
   foreach(DataRow dr in dt.Rows)
   {
    sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]);
   }
   sw.Close();
   Response.AddHeader("Content-Disposition", "attachment; filename=test.csv");
   Response.ContentType = "application/ms-excel";
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
   Response.Write(sw);
   Response.End();

对方法一,二补充一点,如果你希望导出的是xls文件分隔符用\t就可以了,不要用逗号

代码修改如下:
sw.WriteLine("自动编号\t姓名\t年龄");
   foreach(DataRow dr in dt.Rows)
   {
    sw.WriteLine(dr["ID"]+"\t"+dr["vName"]+"\t"+dr["iAge"]);
   }
另外,修改输出的文件扩展名为xls即可。


方法三:从datagrid导出html代码,生成excel文件,给客户端下载

优点:
1、有固定的格式,样子好看(datagrid的样子)

局限性:
1、不适合数据交换,里面有html代码,比较乱,没有固定格式
2、datagrid不能有分页、排序等,否则出错

实现方法:
Response.Clear();
   Response.Buffer= false;
   Response.Charset="GB2312";
   Response.AppendHeader("Content-Disposition","attachment;filename=test.xls");
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");    Response.ContentType = "application/ms-excel";    this.EnableViewState = false;
   System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
   System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
   this.DataGrid1.RenderControl(oHtmlTextWriter);
   Response.Write(oStringWriter.ToString());
   Response.End();

在这里说明一点:有的网友反映代码出现“没有dr["id"]”之类的错误,这个代码是按照我的数据结构来写的,到时候相关的字段要换成你自己的才是。

还有就是如果文件名需要中文的话,这么修改Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode("中文",System.Text.Encoding.UTF8)+".xls");
分享到:
评论

相关推荐

    vb.net中datagrid连接access数据库

    在这个场景中,我们将探讨如何使用VB.NET的DataGrid控件与Microsoft Access数据库进行连接,以便显示、编辑或管理数据库中的数据。 首先,我们需要确保已经安装了必要的组件,包括Visual Studio IDE和ADO.NET数据...

    vb.net+access管理系统中DataGrid查询数据导出到excel的代码

    DataGrid控件用于显示数据库中的数据,而将DataGrid中的数据导出到Excel是一种常见的需求,以便进行数据分析、报表生成或者方便用户共享。以下将详细介绍如何通过VB.NET编写代码实现这一功能。 首先,我们需要创建...

    wpf-datagrid-access DB

    在这个“wpf-datagrid-access DB”主题中,我们将深入探讨如何利用WPF Datagrid与Microsoft Access数据库进行交互,实现数据的读取、更新和保存。 1. **WPF Datagrid简介** - Datagrid是WPF中的一个数据展示控件,...

    C# ASP.net将DataGrid数据输出到Excel文件

    C#如何将DataGrid数据输出到Excel文件呢?,这是一个ASP.NET WEB测试代码,数据库为access,把Access中的内容导出到Excel文件中,并保持数据格式不变,测试时请在ASP.NET3.5环境以上进行,数据库文件路径请修改Web....

    vc++6.0 MFC ado+datagrid+access

    在本项目中,"vc++6.0 MFC ADO+datagrid+access"涉及到了三个关键组件:ADO(ActiveX Data Objects)、datagrid控件以及Access数据库。 1. ADO:ADO是微软的数据访问技术,它允许开发者通过COM接口与各种数据源进行...

    VS2010 MSdatagrid 连接ACCESS

    在本文中,我们将深入探讨如何在Visual Studio 2010 (VS2010) 中使用Microsoft DataGrid控件连接到ACCESS数据库,构建一个基于MFC(Microsoft Foundation Classes)的用户界面程序。MFC是微软提供的C++库,用于简化...

    利用ADO和DATAGRID及HFLEXGRID方法对ACCESS进行操作

    3. **绑定DATAGRID或HFLEXGRID**:将记录集绑定到DATAGRID或HFLEXGRID控件,这样控件就会自动填充并显示数据库中的数据。对于DATAGRID,可能需要手动映射字段到控件列;而对于HFLEXGRID,可能需要设置行数、列数以及...

    DataGrid+Access.7z

    在本文中,我们将深入探讨如何在Windows Presentation Foundation(WPF)中使用DataGrid控件与Access数据库进行数据绑定。WPF是.NET Framework的一部分,提供了一种强大的方式来创建丰富的、交互式的用户界面。数据...

    VB6 设计带记忆的DataGrid数据录入窗口.rar

    VB6 设计带记忆的数据录入窗口,这种记忆实际上是将DataGrid临时输入的数据存入到数据库中了,是一个数据库应用范例,本例子中的数据库采用的Access。在本例中,用户临时对任意DataGrid行列操作时输入的内容,临时...

    使用DataGrid和数据控件访问Access数据库

    本教程将探讨如何使用DataGrid和数据控件来访问并展示Access数据库中的数据。这些控件在VB6(Visual Basic 6)及早期版本中非常常见,并且在Windows XP和Windows 2K等操作系统上运行良好。 DataGrid控件是一个用于...

    C#winfrom 实现导入excel数据到DataGridView及Access

    利用C#.Winfrom编程实现导入excel数据到DataGridView及Access中,我的程序时用VS.NET2008写的,里面附带了一个数据库及导入的excel文件,程序有不足之处请大家原谅!有问题的请在CSDN上给我留言。

    Wpf datagrid 增删改查

    本例子是wpf中datagrid的增加修改,对于datagrid中的canuseraddrows=true,对当前空白行进行的添加数据,修改时,鼠标离开焦点可自动更新数据库,删除等等。不需要多余的界面进行添加修改等,利用datagrid的属性,...

    DataGrid的用法,visual studio.net中VB.NET+access数据库源码编写

    在VB.NET项目中,可以通过拖放的方式将DataGrid控件添加到窗体上,并通过数据绑定技术将它与数据库连接。 1. **创建数据库连接**: 在使用DataGrid之前,首先要建立与Access数据库的连接。这通常通过ADO.NET的`...

    VB中的ADO控件和DATAGrid数据打印报表

    VB中的ADO控件和DATAGrid数据打印报表,一个VB打印的例子,报表生成的例子,数据取自Access数据库,使用Ado将数据从Access读出后绑定在DataGrid报表中,在利用打印组件输出到打印机,效果截图如上所示。

    VB利用DataGrid控件辅助录入数据.rar_VB_VB利用DataGrid控件辅助录入数据_vb DataGrid_vb控

    在这个“VB利用DataGrid控件辅助录入数据”的实例中,我们将深入探讨如何有效地利用DataGrid控件来提高数据录入的效率和用户体验。 首先,DataGrid控件是Microsoft Windows Forms应用程序中的一个标准控件,它是...

    B利用DataGrid控件显示数据库中数据信息

    本教程将深入探讨如何利用DataGrid控件来显示数据库中的数据信息。 1. **DataGrid控件简介** DataGrid控件是.NET框架的一部分,适用于Windows Forms应用程序。它提供了一个二维表格,可以用来展示结构化数据,比如...

    WPF增删改查和分页功能DataGrid

    要实现增删改查,首先需要将DataGrid绑定到一个数据集合,如ObservableCollection,它能监听到内部元素的变化并更新视图。 3. **增(Add)** 为了实现添加功能,通常会在DataGrid下方添加一个“新增”按钮,点击时...

    VB 用datagrid显示数据库信息

    - 将DataGrid的DataSource属性设置为Adodc控件,这样DataGrid就会显示Adodc中的Recordset数据。 - DataGrid的DataMember属性设置为Adodc的RecordsetName,确保DataGrid能正确绑定到记录集。 4. **显示数据**: -...

    VB中DataGrid_控件的使用秘集

    在VB中,DataGrid控件通常通过ADO(ActiveX Data Objects)连接到数据源,如SQL Server、Access数据库或其他ODBC数据源。你可以通过设置控件的DataSource属性来指定数据源,而DataMember属性则指定了要在DataGrid中...

Global site tag (gtag.js) - Google Analytics