首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> ADO.NET应用 -> 使用ADO.net将数据导出到Excel并提供下载
使用ADO.net将数据导出到Excel并提供下载


文章类别:ADO.NET应用 来源: 作者: 发表日期:2005-12-20 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

public string DataTableToExcel(DataTable dt,string excelPath)
        {
            if(dt == null)
            {
                return "DataTable不能为空";
            }

            int rows = dt.Rows.Count;
            int cols = dt.Columns.Count;
            StringBuilder sb;
            string connString;

            if(rows == 0)
            {
                return "没有数据";
            }

            sb = new StringBuilder();
            connString = string.Format(ConnectionString,excelPath);

            //生成创建表的脚本
            sb.Append("CREATE TABLE ");
            sb.Append(dt.TableName + " ( ");

            for(int i=0;i<cols;i++)
            {
                if(i < cols - 1)
                    sb.Append(string.Format("{0} varchar,",dt.Columns[i].ColumnName));
                else
                    sb.Append(string.Format("{0} varchar)",dt.Columns[i].ColumnName));
            }

            using(OleDbConnection objConn = new OleDbConnection(connString))
            {
                OleDbCommand objCmd = new OleDbCommand();
                objCmd.Connection = objConn;

                objCmd.CommandText = sb.ToString();

                try
                {
                    objConn.Open();
                    objCmd.ExecuteNonQuery();
                }
                catch(Exception e)
                {
                    return "在Excel中创建表失败,错误信息:" + e.Message;
                }

                生成插入数据脚本#region 生成插入数据脚本
                sb.Remove(0,sb.Length);
                sb.Append("INSERT INTO ");
                sb.Append(dt.TableName + " ( ");

                for(int i=0;i<cols;i++)
                {
                    if(i < cols - 1)
                        sb.Append(dt.Columns[i].ColumnName + ",");
                    else
                        sb.Append(dt.Columns[i].ColumnName + ") values (");
                }

                for(int i=0;i<cols;i++)
                {
                    if(i < cols - 1)
                        sb.Append("@" + dt.Columns[i].ColumnName + ",");
                    else
                        sb.Append("@" + dt.Columns[i].ColumnName + ")");
                }
                #endregion


                //建立插入动作的Command
                objCmd.CommandText = sb.ToString();
                OleDbParameterCollection param = objCmd.Parameters;

                for(int i=0;i<cols;i++)
                {
                    param.Add(new OleDbParameter("@" + dt.Columns[i].ColumnName, OleDbType.VarChar));
                }

                //遍历DataTable将数据插入新建的Excel文件中
                foreach (DataRow row in dt.Rows)
                {   
                    for (int i=0; i<param.Count; i++)
                    {
                        param[i].Value = row[i];
                    }

                    objCmd.ExecuteNonQuery();
                }

                return "数据已成功导入Excel";
            }//end using
        }

上一篇:ASPImage组件的实现过程 下一篇:Asp.net(c#)实现多线程断点续传
本栏目热门文章
·使用ADO.net将数据导出到Excel并提供下载 2005-12-20
·ASP.NET中存取图片到数据库的示例 2005-10-4
·ADO.NET 数据库实例教程 2005-10-4
·ADO.NET中的多数据表操作浅析之读取 2005-10-4
·用ado.net对word,excel进行存取 2005-10-4
·ASP.NET数据库编程 2005-10-4
·ADO.NET 数据集中浏览多个相关表 2 2005-10-4
·ADO.NET 数据集中浏览多个相关表 1 2005-10-4
·ADO.NET操纵数据库 2006-2-2
·最佳实践 ADO.NET实用经验无保留曝光 2005-10-4
新近更新文章
·ADO.NET性能改善方法集合 2006-5-22
·使用 DataAdapter 执行批量更新 2006-4-30
·ADO.NET起步 2006-4-28
·NHibernate与Ado.Net查询速度的比较 2006-3-20
·通过DataTable获得表的主键 2006-2-28
·ADO.NET操纵数据库 2006-2-2
·用多活动结果集优化ADO.NET2.0数据连接 2005-12-25
·使用ADO.net将数据导出到Excel并提供下载 2005-12-20
·ADO.NET 2.0批量数据操作和多动态结果集 2005-11-1
·ADO.NET 数据集中浏览多个相关表 4 2005-10-4
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: