将数据从 Excel 工作表导入 SQL Server 数据库

2024-01-01

如何在asp net中将Excel工作表中的数据导入到SQL Server数据库中?

Dim OleDbcon As New OleDbConnection((Convert.ToString("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=") & path) + ";Extended Properties=Excel 12.0;")

Dim cmd As New OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon)
Dim objAdapter1 As New OleDbDataAdapter(cmd)

OleDbcon.Open()
Dim dr As DbDataReader = cmd.ExecuteReader()

Dim con_str As String = "Data Source=.;Initial Catalog=studentdetails;Integrated Security=True"

' Bulk Copy to SQL Server 
Dim bulkInsert As New SqlBulkCopy(con_str)
bulkInsert.DestinationTableName = "Table name"
bulkInsert.WriteToServer(dr)
OleDbcon.Close()e here

将其分为两个步骤:

1)将文件保存在某个地方 - 这是很常见的:

字符串 saveFolder = @"C:\temp\uploads"; //在你的机器上选择一个文件夹来存储上传的文件

字符串 filePath = Path.Combine(saveFolder, FileUpload1.FileName);

FileUpload1.SaveAs(文件路径); 现在您在本地有了文件,可以完成真正的工作了。

2)从文件中获取数据。您的代码应该按原样工作,但您可以简单地这样编写连接字符串:

string excelConnString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;数据源={0};扩展属性="Excel 12.0";", filePath); 然后,您可以考虑删除刚刚上传和导入的文件。

为了提供更具体的示例,我们可以将代码重构为两种方法:

private void SaveFileToDatabase(string filePath)
{
    String strConnection = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\Hemant\\documents\\visual studio 2010\\Projects\\CRMdata\\CRMdata\\App_Data\\Database1.mdf';Integrated Security=True;User Instance=True";

    String excelConnString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath);
    //Create Connection to Excel work book 
    using (OleDbConnection excelConnection = new OleDbConnection(excelConnString))
    {
        //Create OleDbCommand to fetch data from Excel 
        using (OleDbCommand cmd = new OleDbCommand("Select [ID],[Name],[Designation] from [Sheet1$]", excelConnection))
        {
            excelConnection.Open();
            using (OleDbDataReader dReader = cmd.ExecuteReader())
            {
                using(SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection))
                {
                    //Give your Destination table name 
                    sqlBulk.DestinationTableName = "Excel_table";
                    sqlBulk.WriteToServer(dReader);
                }
            }
        }
    } 
}


private string GetLocalFilePath(string saveDirectory, FileUpload fileUploadControl)
{


    string filePath = Path.Combine(saveDirectory, fileUploadControl.FileName);

    fileUploadControl.SaveAs(filePath);

    return filePath;

}

您可以简单地调用 SaveFileToDatabase(GetLocalFilePath(@"C:\temp\uploads", FileUpload1));

考虑查看 Excel 连接字符串的其他扩展属性。它们很有用!

您可能想要进行的其他改进包括将 Sql 数据库连接字符串放入配置中,并添加适当的异常处理。请考虑此示例仅用于演示!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据从 Excel 工作表导入 SQL Server 数据库 的相关文章

  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Textview 环绕 View [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图让我的水平布局充分利用可用的空间 在显示活动的信息中 我有一个 事实框 后面跟着一大框文本 我希望信息框向右浮动 类似于下图 使
  • 无需输入类名即可获取枚举?

    我注意到在 C 中 当我有一个 Enum 时 请说 class ClassObject public static Enum EventType Click Jump Etc 当我必须访问它时 我必须浏览它的主类 它非常冗长 例如 Clas
  • 将子菜单添加到 Visual Studio 项目项节点

    右键单击文件项 Visual Studio 解决方案资源管理器时如何添加菜单和子菜单项 我有一个菜单和三个子菜单项 当我右键单击解决方案资源管理器中的文件时 将显示这些菜单项 如下图所示 我尝试使用 vsct 按钮 但它将显示在上下文菜单上
  • 无法安装 MySQL-python

    我想在 python 2 7 虚拟环境中安装 MySQL python 但出现以下错误 Installing collected packages MySQL python Running setup py install for MySQ
  • 安卓:应用程序未安装

    这里是新手 我用Godot游戏引擎制作了我的第一个游戏并成功导出到android 复制到我的手机上 它安装并运行良好 几个小时后 我做了一些更改并再次导出 再次复制了 apk 但现在当我尝试安装它时 它没有完成安装 我多次尝试更改导出设置
  • 在 Android 上检测 wifi IP 地址?

    我需要确定Android设备是否连接到Wifi 如果是 则获取其Wifi IP地址 我知道如何使用 ConnectivityManager 来确定活动网络是否是 Wifi 网络 并且我知道如何使用 java net NetworkInter
  • Python 的 socket.getaddrinfo/mercurial 未使用持久 DNS 缓存

    当我通过一台调制解调器 ISP 连接时 我的 Ubuntu 机器上的 DNS 查找速度非常慢 我按照说明进行操作 例如here http aacable wordpress com 2011 06 13 ubuntu persistent
  • Swing 对话框如何工作?

    如果您在 Swing 中打开一个对话框 例如 JFileChooser 它有点类似于以下伪代码 swing event thread create dialog add listener to dialog close event retu
  • 检测到 glibc:双重释放或损坏

    我将解释我已完成的简短编码步骤以及我面临问题的区域 main cpp int main int cnt map i 1 value My question is about this char pointer key char key ch
  • Makefile:调用变量时如何增加变量? (bash 中的 var++)

    这是我的 makefile 的一部分 LISTEINC DEST file inc DEST otherfile inc DEST anotherfile inc compteur 1 DEST file LISTEINC action D
  • Airflow“此 DAG 在网络服务器 DagBag 对象中不可用”

    当我将新的 DAG python 脚本放入 dags 文件夹中时 我可以在 DAG UI 中查看 DAG 的新条目 但它并未自动启用 最重要的是 它似乎也没有正确加载 我只能点击列表右侧的 刷新 按钮几次 然后切换列表左侧的开 关按钮才能安
  • Eclipse Mars 不显示 Jboss 服务器

    这是我尝试过的事情 在 Eclipse Mars 中 转到 帮助 gt 安装新软件 单击添加按钮并粘贴更新站点的 URL 在我们的示例中 适用于 Jboss 的 Eclipse Mars 工具 http download jboss org
  • Google Play 警告有关缺少后倾意图的警告

    在 Google Play 上更新我们的应用程序时 我得到 You opted in to Android TV but your APK or Android App Bundle does not have the Leanback i
  • 让 HTML 页面仅播放 Flash 影片一次(不在重新访问时...)

    如何让一个 HTML 页面只播放一次 Flash 动画 即当一个人返回该页面时 Flash 不会从头开始再次播放 而只会显示动画的最后一帧 甚至最后一帧的简单 jpg 图像 有可能吗 谢谢 L 您可以在用户第一次访问时保存一个 cookie
  • 如果我们从集成流中删除最新版本会有副作用吗?

    我们已经向测试团队交付了一些包 他们完成了测试 在其中一个包中 他们报告了一个缺陷 该缺陷已被修复并交付给集成流 但在交付时 它要求重新设定基准 并且交付包含重新设定基准活动 在变基活动中 由于合并问题 其中一个文件在没有缺陷的包中被修改
  • 数据库设计:EAV 选择?

    这只是一个数据库概念问题 以下 EAV 模型的优缺点是什么 Model 1 TABLE attribute value id fk id attribute value 1 10 FName John 2 10 Lname Doe 3 55
  • 在 roo 中运行“perform eclipse”时缺少 com.sun:tools:jar:1.4.2

    当我在 Roo 中运行 执行 eclipse 时 我得到 roo gt perform eclipse INFO Scanning for projects INFO INFO Building bugzter INFO task segm
  • 在 Sublime 中水平分割单个视图

    我正在使用 Sublime Text 3 我想编辑单个文件 但将其水平拆分 以便我可以编辑文档的两个部分 类似于 MS Word 在视图 gt 布局 gt 行下 它水平显示一个文件 但是 它只允许新文件 不是同一文件 这可能吗 正如你所说
  • JDBC:在同一事务中创建的 PK 上的外键

    我的 MySQL 数据库中有两个表 它们是这样创建的 CREATE TABLE table1 id int auto increment name varchar 10 primary key id engine innodb and CR
  • 将数据从 Excel 工作表导入 SQL Server 数据库

    如何在asp net中将Excel工作表中的数据导入到SQL Server数据库中 Dim OleDbcon As New OleDbConnection Convert ToString Provider Microsoft ACE OL