用C#做Excel文件导入SQL不成功

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C#做Excel文件导入SQL不成功相关的知识,希望对你有一定的参考价值。

高手们,我做了一个Excel文件导入SQl表,调试不出现任何报错提示,也不成功。代码如下,请各位帮忙指点一二:
string filePath = tbpath.Text;
string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
try

OleDbConnection oleDbConnection = new OleDbConnection(connExcel);
oleDbConnection.Open();
DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string tableName = dataTable.Rows[0][2].ToString().Trim();
tableName = "[" + tableName.Replace("'", "") + "]";
string query = "SELECT 工作令号,件号,工序/工作内容,数量,尺 寸,材 料,额定工时h,制造车间,铆工姓名,分配工时(h),实际工时(h),质检人,工时差异,日期,月份,是否增补,是否完工,结算季度,备注,挪用制令号,挪用工时量(h) FROM " + tableName;
DataSet dataSet = new DataSet();
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query, connExcel);
oleAdapter.Fill(dataSet, "在制设备铆装工时");
string connString = @"data Source=.;Initial Catalog=ywz;User ID=sa;Pwd=123";
SqlConnection sqlConnection1 = new SqlConnection(connString);
DataTable dataTable1 = new DataTable();
SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT 工作令号,件号,工序/工作内容,数量,尺 寸,材 料,额定工时h,制造车间,铆工姓名,分配工时(h),实际工时(h),质检人,工时差异,日期,月份,是否增补,是否完工,结算季度,备注,挪用制令号,挪用工时量(h) FROM 在制设备铆装工时", sqlConnection1);
SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
sqlDA1.Fill(dataTable1);
foreach (DataRow dataRow in dataSet.Tables["在制设备铆装工时"].Rows)

DataRow dataRow1 = dataTable1.NewRow();
dataRow1["工作令号"] = dataRow["工作令号"];
dataRow1["件号"] = dataRow["件号"];
//后面是所有字段的描述

dataTable1.Rows.Add(dataRow1);

Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");
sqlDA1.Update(dataTable1);
oleDbConnection.Close();

catch (Exception ex)

Console.WriteLine(ex.ToString());

调试到连接Excel文件时,监视显示connExcel为空。

参考技术A 嗯,connExcel 根据EXCEL的版本不同有变化的,另外你excel文件里有东西么?还有你确定你查看的sql文件是你操作的那个?vs会在debug文件夹里复制一个sql文件用来调试。
还有可以吧try去掉再运行看看。

怎么把excel文件里的数据导入SQL数据库?

听说可以用SQL中的OPENROWSET函数,但是不知道该怎么用,有知道的麻烦说一下!
补充一下,我要导入的是一个已知的数据库,表也创建好了

具体操作步骤如下:

1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。

2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。

3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源 Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。

4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。

5、然后来到图示界面,直接默认选项即可,点击下一步。

6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。

7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。

8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。

参考技术A

1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。

2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。

3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源 Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。

4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。

5、然后来到图示界面,直接默认选项即可,点击下一步。

6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。

7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。

8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。


扩展资料:

SQL Server的特点如下:

1、具有真正的客户机和服务器体系结构。

2、图形化用户界面,使系统管理和数据库管理更加直观。

3、丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。

4、其完全集成,利用了NT的许多功能,如发送和接受消息等。

参考资料:百度百科:SQL

参考技术B

1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。

2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。

3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源 Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。

4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。

5、然后来到图示界面,直接默认选项即可,点击下一步。

6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。

7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。

8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。

参考技术C

方法如下:

1、打开要导入的Excel文件,观察第一列是为字段还是数据。

2、打开SQLServer,在需要导入的数据点击右键 【任务】-【导入数据】,出现导入导出向导。

3、点击下一步 ,进入【选择数据源】页面,注意红框设置。

4、点击下一步 ,进入【选择目标】页面,注意红框设置。

5、点击下一步 ,进入【指定表复制或查询】页面,注意红框设置。

6、点击下一步 ,进入【选择源表和源视图】页面,注意红框设置。

7、下一步,直到完成。出现【执行结果页面】。

8、最后在SqlServer查询表。

扩展资料

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。

如果一个公司每晚都必须执行多个备份任务,比如要备份SQL数据库、Exchange数据库、用户创建的文件,还有Web服务器,它们的备份顺序是什么呢?

如果不能同时备份的话,那么企业应该首先选择备份最容易被破坏的文件。比如,如果备份软件不允许打开要备份的文件,那么企业就应该首先备份用户文件。

按照这种逻辑,接下来就应该备份SQL服务器。尽管SQL可以在其运行的时候备份,但SQL服务器还同时要承担用户巨大的负载。另外,备份过程会抢占SQL服务器的I/O周期,所以最好是在非高峰期为其备份。

Exchange服务器可以最后备份,因为Exchange可以随时备份,即使在使用过程中,而且Exchange数据库具有相对较低的I/O需求,至少和SQL相比是这样。

SQL包括了所有对数据库的操作,主要是由4个部分组成:

1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。

2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。

3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。

参考资料来源:百度百科:SQL数据库

参考技术D

导入数据不一定要用OPENSET函数,可以用更简单的方法,步骤如下:

1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。

2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。

3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源 Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。

4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。

5、然后来到图示界面,直接默认选项即可,点击下一步。

6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。

7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。

8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。

扩展资料:

导入数据也可使用OPENROWSET函数,但使用该函数之前必须先启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的,系统管理员可以通过使用sp_configure 启用 'Ad Hoc Distributed Queries'。

但有一个问题一定要特别注意,由于 'Ad Hoc Distributed Queries'这个服务存在着较大的安全隐患,所以切记使用完毕之后一定要关闭。

所以,如果是导入数据建议不要使用OPENROWSET函数,弊大于利。

以上是关于用C#做Excel文件导入SQL不成功的主要内容,如果未能解决你的问题,请参考以下文章

c# WINFORM 导入EXCEL数据覆盖问题

用dbgrideh将Excel文件导入数据库中要怎么做

C# 自己写的Winform程序批量导入Excel文件到Oracle数据库的过程中,程序运行会很慢!而且Winform窗体会卡

C# excel文件导入导出

怎么把excel文件里的数据导入SQL数据库?

将 xlwt 生成的 excel 文件导入 SAS