如何将excel数据批量导入sql数据库
发布网友
发布时间:2022-04-22 05:02
我来回答
共3个回答
热心网友
时间:2022-04-07 20:25
把EXCEL数据导入到SQL数据库中:
1、在数据库上点击右键,然后选择“任务”,选择“导入数据”,就看到弹出淡入数据的对话框
2、Excel 上面的字段命名最好跟要导入到最终的那个表的字段相同。假设终表为A表。组装好 如下图:
3、按照操作步骤走下去,最终会生成一个新的表(临时表B表)。
可以借助工具,MSSQL表数据导出成Insert语句的工具 即:将查询出来的这些数据都生成insert into语句。
最终在A表中执行该insert into语句就可以将excel中的数据最终放入数据库中。
热心网友
时间:2022-04-07 21:43
string connString = server=localhost;uid=sa;pwd=sqlgis;database=master;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, sheet1″, connString);}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet();try{//获取全部数据
string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + excelFile + ; + Extended Properties=Excel 8.0;;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = ;
OleDbDataAdapter myCommand = null;
strExcel = string.Format(select * from [{0}$], sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
//如果目标表不存在则创建
string strSql = string.Format(if object_id(’{0}’) is null create table {0}(, sheetName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format([{0}] varchar(255),, c.ColumnName);}strSql = strSql.Trim(’,') + );
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();}//用bcp导入数据
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = sheetName;//目标表
热心网友
时间:2022-04-07 23:17
用导入导出向导。