当前位置: 首页 > news >正文

ASP.NET 2.0中直接将Access数据库导入到Excel文件中

在实际的开发应用中,数据库导入导出是经常遇到的问题,尤其是数据库与Excel文件之间的导入导出,还存在数据类型不一致的问题。例如:数据库的数字超长时会在Excel里格式化成科学计数法的格式,或者记录内容是数字和字符的混合内容会丢失内容等等。将Access数据库的内容直接导入到Excel则可以避免这些问题。

下面例子就是实现这个功能,例子中的数据库使用《ASP.NET 2.0应用开发技术》一书中自带的数据库为例子。

另外,需要注意:Excel文件有诸多限制,在如果数据库记录内容很多,还要计算每次导出的数量和Sheet数目,另外,对Sheet名字相同的监测也省略了,需要的读者请根据情况自行添加上去。结合存储过程的分页功能实现起来比较好。

 

C#:

<%@ Page Language="C#" %>
<!doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>直接将Access数据库导入到Excel文件</title>
</head>
<body>
<form id="form1" runat="server">
<asp:button ID="Button1" runat="server" OnClick="Button1_Click" Text="到处数据" />
</form>
</body>
</html>

VB.NET

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim sql As String
Dim connstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ASPNET20Book.mdb;Persist Security Info=True"
Dim cn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(connstr)
Dim cmd As System.Data.OleDb.OleDbCommand
cn.Open
sql = "select Count(*) From Paging"
cmd = New System.Data.OleDb.OleDbCommand(sql, cn)
Dim RecordCount As Integer = CType(cmd.ExecuteScalar, Integer)
sql = "select top 65535 * into [Excel 8.0;database=" + Server.MapPath(".") + "\ASPNET20Book.xls].[Sheet1] from Paging"
cmd = New System.Data.OleDb.OleDbCommand(sql, cn)
cmd.ExecuteNonQuery
cn.Close
cn.Dispose
cn = Nothing
End Sub

转载于:https://www.cnblogs.com/rocky99261/archive/2007/04/02/1543399.html

相关文章:

  • 读书笔记1
  • 安然公司特殊目的实体(SPEs)解读
  • 双击本地磁盘会出现比如C:\不是有效的Win32应用程序
  • findbugs eclipse 插件 及使用
  • 数字通讯基础:同步与异步
  • Contiki Ctimer模块
  • 人生的抉择
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • phalcon模型查询几种方法
  • 在DotNetNuke中通过修改ascx文件源码自定义界面
  • day10---paramiko ssh ftp
  • ArcSDE9.2
  • 如何删除mspcidrv.sys病毒
  • js循环生成多个easyui datagrid数据网格时,初始化表格
  • 双绞线 (Twist-Pair)
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • es6
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • MYSQL 的 IF 函数
  • React-flux杂记
  • Unix命令
  • vuex 笔记整理
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 浮现式设计
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 学习HTTP相关知识笔记
  • 用mpvue开发微信小程序
  • (C语言)字符分类函数
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)Java算法:二分查找
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)详解PHP处理密码的几种方式
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ../depcomp: line 571: exec: g++: not found
  • .bat批处理出现中文乱码的情况
  • .describe() python_Python-Win32com-Excel
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net Redis的秒杀Dome和异步执行
  • .NET 回调、接口回调、 委托
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net6 webapi log4net完整配置使用流程
  • //解决validator验证插件多个name相同只验证第一的问题
  • /run/containerd/containerd.sock connect: connection refused
  • @Autowired @Resource @Qualifier的区别
  • @Bean, @Component, @Configuration简析
  • [ C++ ] STL_list 使用及其模拟实现
  • [ JavaScript ] JSON方法
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [docker]docker网络-直接路由模式
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案