① C#中如何将Excel中的数据批量导入到sql server
1.本文实现在c#中可高敏桥咐效的将excel数据导入到桥纯sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容消纤易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,而且代码简单,下面测试代码导入一个6万多条数据的sheet,包括读取(全部读取比较慢)在我的开发环境中只需要10秒左右,而真正的导入过程只需要4.5秒。x0dx0a2.代码如下:x0dx0ausing System; x0dx0ausing System.Data; x0dx0ausing System.Windows.Forms; x0dx0ausing System.Data.OleDb; x0dx0anamespace WindowsApplication2 x0dx0a{ x0dx0a public partial class Form1 : Form x0dx0a { x0dx0a public Form1() x0dx0a { x0dx0a InitializeComponent(); x0dx0a } x0dx0ax0dx0a private void button1_Click(object sender, EventArgs e) x0dx0a { x0dx0a //测试,将excel中的sheet1导入到sqlserver中 x0dx0a string connString = "server=localhost;uid=sa;pwd=sqlgis;database=master"; x0dx0a System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog(); x0dx0a if (fd.ShowDialog() == DialogResult.OK) x0dx0a { x0dx0a TransferData(fd.FileName, "sheet1", connString); x0dx0a } x0dx0a } x0dx0ax0dx0a public void TransferData(string excelFile, string sheetName, string connectionString) x0dx0a { x0dx0a DataSet ds = new DataSet(); x0dx0a tryx0dx0a { x0dx0a //获取全部数据 x0dx0a string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 8.0;"; x0dx0a OleDbConnection conn = new OleDbConnection(strConn); x0dx0a conn.Open(); x0dx0a string strExcel = ""; x0dx0a OleDbDataAdapter myCommand = null; x0dx0a strExcel = string.Format("select * from [{0}$]", sheetName); x0dx0a myCommand = new OleDbDataAdapter(strExcel, strConn); x0dx0a myCommand.Fill(ds, sheetName); x0dx0ax0dx0a //如果目标表不存在则创建 x0dx0a string strSql = string.Format("if object_id('{0}') is null create table {0}(", sheetName); x0dx0a foreach (System.Data.DataColumn c in ds.Tables[0].Columns) x0dx0a { x0dx0a strSql += string.Format("[{0}] varchar(255),", c.ColumnName); x0dx0a } x0dx0a strSql = strSql.Trim(',') + ")"; x0dx0ax0dx0a using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)) x0dx0a { x0dx0a sqlconn.Open(); x0dx0a System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand(); x0dx0a command.CommandText = strSql; x0dx0a command.ExecuteNonQuery(); x0dx0a sqlconn.Close(); x0dx0a } x0dx0a //用bcp导入数据 x0dx0a using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)) x0dx0a { x0dx0a bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied); x0dx0a bcp.BatchSize = 100;//每次传输的行数 x0dx0a bcp.NotifyAfter = 100;//进度提示的行数 x0dx0a bcp.DestinationTableName = sheetName;//目标表 x0dx0a bcp.WriteToServer(ds.Tables[0]); x0dx0a } x0dx0a } x0dx0a catch (Exception ex) x0dx0a { x0dx0a System.Windows.Forms.MessageBox.Show(ex.Message); x0dx0a }x0dx0a } x0dx0ax0dx0a //进度显示 x0dx0a void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e) x0dx0a { x0dx0a this.Text = e.RowsCopied.ToString(); x0dx0a this.Update(); x0dx0a }x0dx0a } x0dx0a} x0dx0a3.上面的TransferData基本可以直接使用,如果要考虑周全的话,可以用oledb来获取excel的表结构,并且加入ColumnMappings来设置对照字段,这样效果就完全可以做到和sqlserver的dts相同的效果了。
② 怎么把excel文件里的数据导入SQL数据库
导入数据不一定要用OPENSET函数,可以用更简单的方法,步骤如下:
1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。
2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。
3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。
4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。
5、然后来到图示界面,直接默认选项即可,点击下一步。
6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。
7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。
8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。
(2)excel批量导入sql文件扩展阅读:
导入数据也可使用OPENROWSET函数,但使用该函数之前必须先启用AdHocDistributedQueries服务,因为这个服务不安全所以SqlServer默认是关闭的,系统管理员可以通过使用sp_configure启用'AdHocDistributedQueries'。
但有一个问题一定要特别注意,由于'AdHocDistributedQueries'这个服务存在着较大的安全隐患,所以切记使用完毕之后一定要关闭。
所以,如果是导入数据建议不要使用OPENROWSET函数,弊大于利。
③ 如何将EXCEL数据导入到SQL SERVER数据库中
将EXCEL数据导入到SQL SERVER数据库最便捷的方法就是使用SqlCel。话不多说,直接上图
SqlCel可以一键批量导入Excel。
④ Excel中如何导入SQL Server里的数据
我们使用Excel操作数据的时候,数据不仅可以自己录入,还可以从SQL Server数据库中导入。那么如何导入呢?下面我给大家分享一下。
工具/材料
Excel
- 01
首先打开SQL Server数据库,准备一个要导入的数据表,如下图所示,数据表中插入一些数据
- 02
接下来打开Excel软件,点击数据菜单,然后选择其他来源下面的来自SQL Server选项,如下图所示
- 03
然后会弹出数据库连接向导界面,在输入框里面输入服务器名称,也就是计算机名,如下图所示
- 04
接着我们需要选择数据库并选择要导入数据的表,如下图所示
- 05
然后点击最底下的身份验证设置按钮设置一下身份验证方式,如下图所示
- 06
在弹出的Excel Services身份验证设置界面中选择第一个选项,如下图所示
- 07
接下来就会出现导入内容的具体设置界面了,我们选择要导入表,并且选择一个空白单元格位置作为数据的导入位置,如下图所示
- 08
最后点击确定按钮,我们就可以看到SQL Server中的数据就导入进Excel里了,如下图所示
⑤ 请教如何将excle上面的数据批量导入至sql2008数据库
在查询分析器里,直接写 SQL语句:
如果是导入数据到现有表,则采用形式
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
如果是导入数据并新增表,则采用形式
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。 操作过程如下:
第一步:登录到 SQL Server Management Studio
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。
⑥ 怎样将EXCEL数据导入到sql中
1、打开企业管理器,打开要导入数据的数据库,在表上按右键,所有任务-->导入数据,弹出DTS导入/导出向导,按 下一步 ,
2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 ,
3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 ,
4、选择 用一条查询指定要传输的数据,按 下一步 ,
5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 ,
6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语句中 order by 后面所跟的列,按 下一步 ,
7、如果要全部导入,则选择 全部行,按 下一步,
8、则会看到根据前面的操作生成的查询语句,确认无误后,按 下一步,
9、会看到 表/工作表/Excel命名区域 列表,在 目的 列,选择要导入数据的那个表, 按 下一步,
10、选择 立即运行,按 下一步,
11、会看到整个操作的摘要,按 完成 即可
⑦ 怎么把excel的数据导入到sql
方法/步骤
1
打开SQL Server Management Studio,按图中的路径进入导入数据界面。
2
导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。
数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。
选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。
再次确认文件路径没有问题,点击下一步。
默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。
选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。点击下一步。
选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。
点击进入下一步。
在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。
可以看到任务执行的过程和进度。
执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT * FROM price$就可以查看已导入的数据内容。
⑧ 如何将Excel数据批量导入SQL数据库
把EXCEL数据导入到SQL数据库中:
1、在数据库上点击右键,然后选择“任务”,选择“导入数据”,就看到弹出淡入数据的对话框
3、按照操作步骤走下去,最终会生成一个新的表(临时表B表)。
可以借助工具,MSSQL表数据导出成Insert语句的工具 即:将查询出来的这些数据都生成insert into语句。
最终在A表中执行该insert into语句就可以将excel中的数据最终放入数据库中。
⑨ 如何将Excel表导入现有的SQL SEVER数据表里面
1、首先准备好Excel表,希望把它导入到SQL Server2012中的QearlTest数据库中。
⑩ 怎样将EXCEL数据表导入到SQL中
第一步:登录到
sql
server
management
studio
第二步:在
“对象资源管理器
”中右键单击
“管理
”,在弹出列表中单击
“导入数据
”
第三步:在
“导入向导
”对话框中单击
“下一步
”,进入到
“选择数据源
”对话框,在
“数据源
”列表中选择
“microsoft
excel
”,同时选择相应的
excel
文档,完成后单击
“下一步
”(一定要勾选该对话框中的
“首行包含列名称
”,因此它是将
excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击
“下一步
”。。。。至到
“完成
”
第五步:重新打到
sql
server
management
studio,进入到导入的数据库表,可以发现所导入的
excel文档数据。