当前位置:

首页 > 编程开发 > 在VS2015中使用C#操作数据库并实现Excel报表导出与打印的具体过程

在VS2015中使用C#操作数据库并实现Excel报表导出与打印的具体过程

在VisualStudio2015中用C#通过System.Data.SqlClient连接SQLServer、System.Data.OleDb连接Access,执行增删改查;并借助Microsoft.Office.Interop.Excel实现Excel报表导出与打印,需注意COM资源释放及连接字符串配置。

本文目录

    在Visual Studio 2015环境下,同时操作SQL Server和Access数据库,还要顺带搞定Excel报表的导出与打印——这几乎是每个桌面应用开发都会遇到的组合拳。最近项目里频繁用到这些功能,开发环境是VS2015,数据库在Sql和Access之间切换,Office 2013负责做Excel交互。趁热把具体实现过程整理出来,方便自己日后查阅,也希望能给有同样需求的朋友一点参考。

    一、C# 连接Sql数据库

    C#里连接SQL Server,最常用的就是System.Data.SqlClient命名空间。下面这段代码展示了最典型的连接与查询流程:

    using System;
    using System.Data.SqlClient;
    
    class Program
    {
        static void Main()
        {
            string connectionString = "Data Source=YOUR_SERVER_NAME;Initial Catalog=YOUR_DATABASE_NAME;User ID=YOUR_USERNAME;Password=YOUR_PASSWORD";
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    string query = "SELECT * FROM YourTableName";
                    using (SqlCommand command = new SqlCommand(query, connection))
                    {
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                Console.WriteLine(reader.GetString(0)); // 假设第一列是字符串类型
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("连接数据库或执行查询时出错: " + ex.Message);
                }
            }
        }
    }

    拆开来看,几个关键点:

    • 连接字符串里要填服务器名、数据库名、用户名和密码,实际使用时把占位符替换掉就行。
    • using语句是必须养成的习惯——连接、命令、读取器都能在代码块结束时自动释放,避免资源泄漏。
    • 执行查询用SqlCommand配合ExecuteReader,返回的SqlDataReader可以逐行读取结果集。这里只是示例,实际项目往往会封装成通用方法。

    二、C# 连接Access数据库

    Access走的不是SqlClient那一套,得用System.Data.OleDb命名空间。代码逻辑和SQL Server版本几乎一样,只是换了一组类名:

    using System;
    using System.Data.OleDb;
    
    class Program
    {
        static void Main()
        {
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=YOUR_ACCESS_FILE_PATH;";
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    string query = "SELECT * FROM YourTableName";
                    using (OleDbCommand command = new OleDbCommand(query, connection))
                    {
                        using (OleDbDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                Console.WriteLine(reader.GetString(0));
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("连接数据库或执行查询时出错: " + ex.Message);
                }
            }
        }
    }

    这里有两个细节要留意:

    • 连接字符串里的Provider指定为Microsoft.ACE.OLEDB.12.0,它支持Office 2007及以上版本的Access数据库(.accdb文件)。如果是早期.mdb文件,可能需要用Microsoft.Jet.OLEDB.4.0。
    • 路径是Access文件的实际物理路径,建议用绝对路径或者通过AppDomain.CurrentDomain.BaseDirectory拼接。

    三、SQL语句操作

    无论用SQL Server还是Access,基础的增删改查语法差异很小。以插入数据为例:

    -- Sql插入语句示例
    INSERT INTO YourTableName (Column1, Column2, Column3)
    VALUES ('Value1', 'Value2', 'Value3');
    
    -- Access插入语句示例,语法基本一致
    INSERT INTO YourTableName (Column1, Column2, Column3)
    VALUES ('Value1', 'Value2', 'Value3');

    INSERT INTO后面跟表名和列名,VALUES里填对应值,顺序要一致。需要注意一点:Access对某些关键字(如Date、Name)比较敏感,如果列名是关键字,记得用方括号括起来,比如[Date]。

    四、Excel报表导出

    在VS2015中操作Excel,通常借助Microsoft.Office.Interop.Excel库。添加引用的路径是:项目右键→添加引用→COM选项卡→选择“Microsoft Excel 15.0 Object Library”(15.0对应Office 2013)。

    在VS2015中使用C#操作数据库并实现Excel报表导出与打印的具体过程

    下面是一段把内存数据写入Excel并保存的示例:

    using System;
    using Excel = Microsoft.Office.Interop.Excel;
    
    class Program
    {
        static void Main()
        {
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook workbook = excelApp.Workbooks.Add();
            Excel.Worksheet worksheet = workbook.Sheets[1];
    
            // 假设已经从数据库获取到数据
            string[,] data = { { "Data1", "Data2" }, { "Data3", "Data4" } };
    
            for (int i = 0; i < data.GetLength(0); i++)
            {
                for (int j = 0; j < data.GetLength(1); j++)
                {
                    worksheet.Cells[i + 1, j + 1] = data[i, j];
                }
            }
    
            workbook.Sa veAs("YourExcelFilePath.xlsx");
            workbook.Close();
            excelApp.Quit();
        }
    }

    流程很直观:新建Excel应用实例→创建工作簿→获取第一个工作表→遍历数据并写入单元格→保存文件→清理对象。需要特别注意的是,Interop操作完成后一定要调用Quit()和ReleaseComObject(本例略),否则Excel进程会一直挂在后台。另外,生产环境建议考虑NPOI或EPPlus等无Office依赖的第三方库,避免COM权限和版本兼容问题。

    五、Excel报表打印

    打印同样基于Interop,代码甚至更简单:

    using System;
    using Excel = Microsoft.Office.Interop.Excel;
    
    class Program
    {
        static void Main()
        {
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook workbook = excelApp.Workbooks.Open("YourExcelFilePath.xlsx");
            Excel.Worksheet worksheet = workbook.Sheets[1];
    
            worksheet.PrintOut();
    
            workbook.Close();
            excelApp.Quit();
        }
    }

    PrintOut()方法不带参数时使用默认打印机和默认设置。如果需要对打印份数、页面范围等做精细化控制,可以传入PrintOutEx的重载参数。同样,用完记得释放COM资源。

    在VS2015中使用C#操作数据库并实现Excel报表导出与打印的具体过程

    总结

    以上就是在VS2015 + Office 2013环境下,用C#操作SQL Server和Access数据库,并完成Excel报表导出与打印的一套完整方案。代码本身不算复杂,但资源释放、连接字符串配置、引用添加这些细节很容易踩坑。实际项目中建议把这些数据库操作封装成独立的数据访问层,Excel操作则可以考虑更轻量的开源组件。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    VS2015更换主题教程
    VS2015更换主题教程

    启动VisualStudio2015,在工具菜单打开选项窗口,依次展开环境、常规,或搜索“主题”,在颜色主题下拉列表中选择深色、浅色或蓝色,点击确定即可更换界面主题,提升视觉体验。该操作简单快捷,能有效缓解视觉疲劳,提高工作效率。

    VS2015怎么新增账户
    VS2015怎么新增账户

    VS2015怎么新增账户 想在Visual Studio 2015里添加一个新账户?操作其实很直观,主要有两种入口可以启动这个流程。 首先,一个最快捷的方式是直接使用键盘。当你在VS2015的首页时,按下对应的快捷键组合,就能直接呼出相关功能面板。 如果你不习惯记快捷键,也别担心。菜单栏提供了同样清

    opencode安装skills教程及本地配置方法
    opencode安装skills教程及本地配置方法

    遇到OpenCode Skills无法加载或配置无效?本文手把手教你完成Skills的安装、环境变量设置及本地调试,避开常见坑点,让AI助手更懂你的代码习惯。

    如何开启Visual Studio2022实时代码分析警告提示
    如何开启Visual Studio2022实时代码分析警告提示

    解决 Visual Studio 2022 编辑时不显示代码分析警告的问题。指南涵盖 .NET 项目实时分析设置、Roslyn 分析器范围调整及错误列表来源筛选,确保开发者能高效利用实时代码诊断功能。

    如何在Visual Studio2022查看变量监视窗口调试程序
    如何在Visual Studio2022查看变量监视窗口调试程序

    详解 Visual Studio 2022 调试技巧:包括断点设置、监视窗口开启方法、变量添加步骤以及通过 F10 单步执行观察变量值变化的全过程。

    Visual Studio2017设置默认编码为UTF-8不带BOM
    Visual Studio2017设置默认编码为UTF-8不带BOM

    针对 Visual Studio 2017 缺乏全局默认编码选项的情况,详解如何利用 .editorconfig 设定项目级 UTF-8 无 BOM 规则,以及手动转换现有文件并校验字节的方法。

    Visual Studio2022F5调试提示启动项目未配置怎么修复
    Visual Studio2022F5调试提示启动项目未配置怎么修复

    解决 Visual Studio 2022 F5 调试报错问题,通过设置启动项目、检查解决方案属性及正确区分类库与应用项目,快速恢复调试功能。

    Visual Studio2022NuGet包还原失败离线处理方案
    Visual Studio2022NuGet包还原失败离线处理方案

    解决Visual Studio 2022离线环境中NuGet包还原失败的难题,涵盖依赖链分析、本地源配置、包集收集及隔离验证步骤,帮助开发者构建稳定的离线开发环境。

    Visual Studio2017大项目加载缓慢,优化加载性能技巧
    Visual Studio2017大项目加载缓慢,优化加载性能技巧

    解决Visual Studio 2017大型项目加载慢的实用指南。涵盖性能监测、扩展管理、文档恢复优化及版本兼容性检查,帮助开发者精准定位瓶颈并提升工作效率。

    Visual Studio2022设置多启动项目同时调试运行
    Visual Studio2022设置多启动项目同时调试运行

    详解 Visual Studio 2022 多启动项目配置方法,包括启动动作选择、顺序调整及调试技巧,帮助开发者高效调试分布式或前后端分离应用。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。