注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

伯纳乌の夢

可以挽回么?我们按“ Ctrl+Z”撤销掉吧。对不起啦~~

 
 
 

日志

 
 
 
 

C#导出Oracle数据到Excel  

2009-08-31 00:25:13|  分类: Web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 以下错误信息是我在用C#导出oracle 数据到Excel 时的提示:
命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是缺少程序集引用吗?)

只要做到以下几点,则基本可以杜绝这种错误信息提示:
1)添加引用
背景:VS 2005 + Office 2003
Oracle 数据库需要用到的引用:网站->添加引用->COM->System.Data.OracleClient.dll
Excel 需要用的引用:网站->添加引用-> COM->Microsoft Office 11.0 Object Library COM->Microsoft Excel 11.0 Object Library

2)确保安装的Office 有支持 .NET程序设计。

3)程序中引用
using System.Data.OracleClient;
using Excel=Microsoft.Office.Interop.Excel;

 protected void ibtnSave_Click(object sender, ImageClickEventArgs e)
    {
        string ConnectionString = "Data Source=db;user=test;password=test123;";
        try
        {
            OracleConnection conn = new OracleConnection(ConnectionString);
            conn.Open();
            try
            {
                string s = "select * from hr_emp he";
                // 连接oracle数据源
                OracleCommand cmd = new OracleCommand(s, conn);
                OracleDataReader dr = cmd.ExecuteReader();
                // 打开excle并导出表
                Excel.Application xlApp = new Excel.Application();
                if (xlApp == null)
                {
                    Response.Write("Can't open Excel!");
                    return;
                }
                xlApp.Application.Workbooks.Add(true);
                int row = 2, fieldcount;
                fieldcount = dr.FieldCount;
                for (int col = 0; col < fieldcount; col++)
                    xlApp.Cells[1, col + 1] = dr.GetName(col);
                // 读出数据库内容,并写入excle
                while (dr.Read())
                {
                    for (int col = 0; col < fieldcount; col++)
                        xlApp.Cells[row, col + 1] = dr.GetValue(col).ToString();
                    row++;
                }
                xlApp.Visible = true;
                xlApp = null;
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }
  评论这张
 
阅读(1317)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017