c_实现excel数据高效导入到sql数据库

合集下载

c#excel如何导入到sqlserver数据库

c#excel如何导入到sqlserver数据库

c#excel如何导⼊到sqlserver数据库最近在做这个如何把excel导⼊到数据库中,经过多⽅查找,终于找到⼀个适合的,并且经过⾃⼰的完善可以正常使⽤(忘记原作者博客的链接地址了,敬请见谅)1. ⾸先是窗体的创建,⽂本框显⽰⽂件的路径,按钮执⾏操作,DataGridView显⽰导⼊的信息2.3. 代码如下:可根据⾃⼰的需求进⾏修改,我是要导⼊之后就对我的另⼀窗体进⾏刷新,定义了委托,你们可以忽略。

//定义委托public delegate void Refresh();//定义事件public event Refresh myRefresh;public ExcelRoprtForm(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//选中导⼊的⽂件try{//openFileDialog1.Filter = "Excel ⽂件|*.xls";//指定存放⽂件格式类型OpenFileDialog fd = new OpenFileDialog();fd.Filter = "Excel⽂件(*.xls,xlsx)|*.xls;*.xlsx";if (fd.ShowDialog() == DialogResult.OK){string fileName = fd.FileName.ToString();this.textBox1.Text = fileName;}}catch (Exception ee){MessageBox.Show("打开⽂件出错!" + ee.Message.ToString());}}private DataSet xsldata(string filepath){string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";//string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + filepath + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);string strCom = "SELECT * FROM [Sheet1$]";Conn.Open();System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);DataSet ds = new DataSet();myCommand.Fill(ds, "[Sheet1$]");dataGridView1.DataSource = ds.Tables[0];Conn.Close();return ds;}private void button2_Click(object sender, EventArgs e){if (textBox1.Text == ""){MessageBox.Show("请选择要导⼊的Excel⽂档!", "系统提⽰", MessageBoxButtons.OK, rmation);return;}string filepath = textBox1.Text;string strcon1 = ConfigurationManager.ConnectionStrings["connString"].ToString();SqlConnection conn = new SqlConnection(strcon1);//链接数据库conn.Open();try{DataSet ds = new DataSet();//取得数据集//调⽤上⾯的函数ds = xsldata(filepath);int errorcount = 0;//记录错误信息条数int insertcount = 0;//记录插⼊成功条数int updatecount = 0;//记录更新信息条数for (int i = 0; i < ds.Tables[0].Rows.Count; i++){string carnumber = ds.Tables[0].Rows[i][0].ToString();int carstatus = Convert.ToInt32(ds.Tables[0].Rows[i][1].ToString());int cartype = Convert.ToInt32(ds.Tables[0].Rows[i][2].ToString());string carbrand = ds.Tables[0].Rows[i][3].ToString();if (carnumber != "" && carstatus != 0 && cartype != 0){SqlCommand selectcmd = new SqlCommand("select count(*) from CarInfo where CarNumber='" + carnumber + "'", conn);int count = Convert.ToInt32(selectcmd.ExecuteScalar());if (count > 0){updatecount++;}else{SqlCommand insertcmd = new SqlCommand("insert into CarInfo(CarNumber,CarStatusID,CarTypeID,CarBrand) values(" + "'" + carnumber + "'," + carstatus + "," + cartype + ",'" + carbrand + "'" + ")", conn); insertcmd.ExecuteNonQuery();insertcount++;}}else{//MessageBox.Show("电⼦表格信息有错!");errorcount++;}}myRefresh();MessageBox.Show(insertcount + "条数据导⼊成功!" + updatecount + "条数据重复!" + errorcount + "条数据部分信息为空没有导⼊!");}catch (Exception ex){MessageBox.Show(ex.Message);}finally{conn.Close();}}。

(C#)excel数据导入SqlServer中

(C#)excel数据导入SqlServer中

(C#)excel数据导⼊SqlServer中15:08:57protected void btnReadDataTo_Click(object sender, EventArgs e){if (FuloadExcelFile.FileName == "")return;string fileExt = System.IO.Path.GetExtension(FuloadExcelFile.FileName);if (fileExt != ".xls")//必须是EXCEL⽂件return;string filepath = FuloadExcelFile.PostedFile.FileName;//⽂件路径DataTable dt = new DataTable();dt = CallExcel(filepath);//返回EXCEL⽂件的数据if(InsertSQLServer(dt,FuloadExcelFile.FileName.Split('.')[0]))//导⼊数据库{}}protected DataTable CallExcel(string filepath){OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0");con.Open();string sql = "select * from [Sheet1$]";//选择第⼀个数据SHEET//OleDbCommand command = new OleDbCommand(sql, con);//OleDbDataReader reader = command.ExecuteReader();//if (reader.Read())//{// reader[0].ToString();//直接读出数据//}OleDbDataAdapter adapter = new OleDbDataAdapter(sql, con);DataTable dt = new DataTable();adapter.Fill(dt);//reader.Close();//command.Dispose();con.Close();con.Dispose();return dt;}protected bool InsertSQLServer(DataTable dt,string dataname){string strCon = @"Server=BOBER\SQLExpress;Integrated Security=true;";//⽆数据库名连接string strTest="testTable";try{SqlConnection con = new SqlConnection(strCon);//创建数据库con.Open();string strSQL = "IF NOT EXISTS(SELECT name FROM sys.databases WHERE name=N'" + dataname + "') CREATE DATABASE [" + dataname + "]";SqlCommand command = new SqlCommand(strSQL, con);command.ExecuteNonQuery();//创建数据库表strSQL = "USE[" + dataname + "] IF NOT EXISTS(SELECT * FROM sys.objects WHERE object_id=OBJECT_ID(N'[DBO].[" + strTest + "]') AND type in (N' U')) CREATE TABLE " + strTest + " (";string strColumn=string.Empty;for (int i = 0; i < dt.Columns.Count; i++){strSQL += "[" + dt.Columns[i].ColumnName + "] [nvarchar](256),";strColumn+=dt.Columns[i].ColumnName+",";}strSQL += " )";SqlCommand newcom = new SqlCommand(strSQL, con);newcom.ExecuteNonQuery();//插⼊数据strColumn=strColumn.Substring(0,strColumn.Length-1);for(int i=0;i<dt.Rows.Count;i++){strSQL = "USE[" + dataname + "] Insert into "+strTest+" (" + strColumn + ") values (";for (int k = 0; k < dt.Columns.Count; k++){strSQL += "'"+dt.Rows[i][k].ToString()+"',";}strSQL = strSQL.Substring(0, strSQL.Length - 1);strSQL += ")";SqlCommand insertCom = new SqlCommand(strSQL, con);insertCom.ExecuteNonQuery();}return true;}catch{return false;}}。

VC读取Excel单元格的内容并插入到SQL Server数据中

VC读取Excel单元格的内容并插入到SQL Server数据中

VC读取Excel单元格的内容并插入到SQL Server数据中(正确代码)/* //如果在链接数据时,已经初始化Com文档,可以省略此段代码//初始化Com库if (CoInitialize(NULL)!=0){AfxMessageBox("初始化COM支持库失败!");exit(1);}*//*//读取文件中的数据if (!app.CreateDispatch( _T( "Excel.Application" ), NULL ) ){::MessageBox( NULL, _T( "创建Excel服务失败!" ), _T( "错误提示!" ), MB_OK | MB_ICONERROR); exit(1);}//设置为显示app.SetVisible(FALSE);books.AttachDispatch( app.GetWorkbooks(), TRUE ); //没有这条语句,下面打开文件返回失败。

LPDISPATCH lpDisp = NULL;COleVariantcovTrue((short)TRUE);COleVariantcovFalse((short)FALSE);COleVariantcovOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);Range cell;// 打开文件lpDisp = books.Open( strPath,_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing),_variant_t(vtMissing) );// 获得活动的WorkBook( 工作簿)book.AttachDispatch(lpDisp, TRUE );// 获得活动的WorkSheet( 工作表)sheet.AttachDispatch(book.GetActiveSheet(), TRUE );// 获得使用的区域Range( 区域)range.AttachDispatch(sheet.GetUsedRange(), TRUE );// 获得使用的行数longlgUsedRowNum = 0;range.AttachDispatch(range.GetRows(), TRUE );lgUsedRowNum = range.GetCount();// 获得使用的列数longlgUsedColumnNum = 0;range.AttachDispatch(range.GetColumns(), TRUE );lgUsedColumnNum = range.GetCount();// 读取Sheet的名称CStringstrSheetName = sheet.GetName();//得到全部Cells,此时,CurrRange是cells的集合range.AttachDispatch(sheet.GetCells(), TRUE );//创建数据表// 遍历整个Excel表格CStringArray* arrayStr;arrayStr = new CStringArray[lgUsedRowNum];for ( int i = 1; i <lgUsedRowNum; ){CStringid,name,bj,sql;//for ( int j = 1; j <= lgUsedColumnNum; )//{cell.AttachDispatch(range.GetItem( COleVariant( (long)(i + 1)), COleVariant( (long)1 ) ).pdispVal, TRUE );VARIANT varItemId = cell.GetText();id=varItemId.bstrVal;// CStringstrItemName = varItemName.bstrVal;cell.AttachDispatch(range.GetItem( COleVariant( (long)(i + 1)), COleVariant( (long)2 ) ).pdispVal, TRUE );VARIANT varItemName = cell.GetText();name =varItemName.bstrVal;cell.AttachDispatch(range.GetItem( COleVariant( (long)(i + 1)), COleVariant( (long)3 ) ).pdispVal, TRUE );VARIANT varItemBj = cell.GetText();bj =varItemBj.bstrVal;//下面语代码将数据插入到数据表中sql.Format("insert into tb_newstuinfo values('%d','%s','%d')",atoi((char*)(_bstr_t)id),(char*)(_bstr_t)name, atoi((char*)(_bstr_t)bj));m_pCon->Execute((_bstr_t)sql,NULL,adCmdText);// AfxMessageBox(strItemName );/* // 判断是否是合并的单元格VARIANT varMerge = cell.GetMergeCells();if ( varMerge.boolVal == -1 ){// AfxMessageBox( _T( "是合并的单元格!" ) );}else if ( varMerge.boolVal == 0 ){// AfxMessageBox( _T( "不是合并的单元格!" ) );} */// arrayStr[i].Add(strItemName );// j++;// }/* i++;}charnum[255];m_Count.SetWindowText(itoa(i-1,num,10));// 更新列表控件数据// m_pExcelOperDlg->initListCtrlColumn(lgUsedColumnNum );// m_pExcelOperDlg->updateListCtrlData( arrayStr, lgUsedRowNum );// 释放二维数组delete[] arrayStr;MessageBox("导入完成","提示",MB_OK);// 关闭book.Close(covOptional, COleVariant(strPath ), covOptional );books.Close();// 释放range.ReleaseDispatch();sheet.ReleaseDispatch();sheets.ReleaseDispatch();book.ReleaseDispatch();books.ReleaseDispatch();app.ReleaseDispatch();app.Quit(); // 这条语句是推出Excel程序,任务管理器中的EXCEL进程会自动退出。

一种高效的excel表导入数据库的实现方法

一种高效的excel表导入数据库的实现方法

一种高效的 Excel 表导入数据库的实现方法在企业或个人日常工作中,经常需要将 Excel 表格中的数据导入到数据库中。

本文介绍了一种高效的 Excel 表导入数据库的实现方法,该方法可以大大提高数据导入的速度和准确性。

下面是本店铺为大家精心编写的3篇《一种高效的 Excel 表导入数据库的实现方法》,供大家借鉴与参考,希望对大家有所帮助。

《一种高效的 Excel 表导入数据库的实现方法》篇1引言在企业或个人日常工作中,经常需要将 Excel 表格中的数据导入到数据库中。

通常情况下,这种导入需要手动执行,即通过编写 SQL 语句或将数据复制粘贴到数据库管理系统中完成。

这种方法费时费力,且容易出错。

因此,本文介绍了一种高效的 Excel 表导入数据库的实现方法,以提高数据导入的速度和准确性。

实现方法该实现方法主要包括以下步骤:1. 创建一个 Excel 表格,并将需要导入的数据添加到该表格中。

2. 使用 Excel 的“数据”选项卡中的“获取数据”功能,将 Excel 表格中的数据连接到数据库中。

这一步可以使用 Excel 自带的连接器或者使用第三方连接器。

3. 在 Excel 中创建一个新的工作表,并将需要导入的数据添加到该工作表中。

4. 使用 Excel 的“数据”选项卡中的“从其他源导入”功能,将数据从 Excel 工作表中导入到数据库中。

这一步可以使用 Excel 自带的导入器或者使用第三方导入器。

5. 在数据库中创建一个新的表,并将导入的数据添加到该表中。

6. 对导入的数据进行验证和清洗,以确保数据的准确性和完整性。

7. 执行 SQL 语句,将导入的数据保存到数据库中。

优点该实现方法具有以下优点:1. 高效。

该方法可以大大提高数据导入的速度,节省人力和时间成本。

2. 准确。

该方法可以确保导入的数据准确无误,避免数据错误导致的后续问题。

3. 灵活。

该方法可以支持多种数据库类型,如 MySQL、Oracle 等。

如何把EXCEL数据导入到SQLSERVER数据库中

如何把EXCEL数据导入到SQLSERVER数据库中

如何把EXCEL数据导入到SQLSERVER数据库中将Excel数据导入SQL Server数据库可以通过以下步骤实现:1. 打开Excel文件并选择要导入的数据:首先,打开Excel文件并选择要导入到SQL Server数据库的数据。

确保数据位于连续的单元格区域内,并且包含正确的列和行标题。

2. 导出Excel数据为CSV格式:将Excel数据导出为CSV(逗号分隔值)格式,这种格式是一种常见的数据交换格式,可以方便地被导入到SQL Server数据库中。

在Excel中,选择“文件”>“另存为”,然后选择CSV格式进行保存。

3. 创建目标表:在SQL Server数据库中创建一个目标表,用于存储要导入的数据。

可以使用SQL Server Management Studio或任何其他SQL编程工具来创建表。

确保表结构与将要导入的Excel数据的列和行标题相匹配。

4. 定义目标表的列:为目标表定义与Excel数据相匹配的列,保证目标表的列名与Excel数据的列名相同,并且数据类型也相匹配。

如果需要修改列的数据类型或长度,可以使用ALTER TABLE语句进行修改。

5. 使用SQL Server导入向导:使用SQL Server导入向导来导入CSV文件中的数据。

打开SQL Server Management Studio,右键单击目标数据库,选择“任务”>“导入数据”来打开导入向导。

6. 选择数据源:在导入向导的“选择数据源”步骤中,选择适当的数据源类型,这里选择“Flat File Source”,然后浏览找到之前保存的CSV文件。

7. 配置数据源:在导入向导的“配置Flat File Source”步骤中,配置CSV文件的设置。

确保分隔符设置为逗号(CSV的默认分隔符),并根据需要调整其他设置。

点击“下一步”继续。

8.选择目标数据库:在导入向导的“选择目标表或查看现有表”步骤中,选择目标数据库和表。

基于C#的Excel数据导入导出SQL Server的研究与实现

基于C#的Excel数据导入导出SQL Server的研究与实现

基于C#的Excel数据导入导出SQL Server的研究与实现在排球成绩测评系统实际应用中,导入学生信息和导出学生成绩是提高数据录入速度和快速输出的有效途径。

本文详细介绍了使用C#语言、采用SqlBulkCopy类将Excel数据表导入到SQL Server数据库,以及将数据库中的数据导出到Excel数据表中的方法。

标签:C#Excel SQL Server导入导出1概述Excel是办公中常用的电子表格处理工具,SQL Server是目前流行的数据库管理系统,均在信息系统中被广泛使用[1,2]。

基于安全性、通用性和共享性等考虑,信息系统一般都会给用户提供借助Excel进行数据导入导出数据库的功能[3,4]。

排球成绩测评系统中的学生信息可以逐个添加,也可以按班级从Excel 中整体导入;系统中的班级成绩信息、不及格成绩信息需要导出到Excel中。

本文介绍在.Net环境下,使用C#编程实现排球成绩测评系统中Excel数据与SQL Server2005数据库中数据的导入导出。

2导入数据2.1SqlBulkCopy类导入数据需要使用SqlBulkCopy类。

SqlBulkCopy类提供了一种将其它源的数据批量复制到Sql Server数据库表中高性能的方法。

SqlBulkCopy包含可以重载的方法WriteToServer,它用来从其它数据的源复制数据到数据的目的地。

WriteToServer方法可以处理的数据类型有DataRow[]数组、DataTable和DataReader,可以根据具体情况使用相应的数据类型。

SqlBulkCopy 复制数据的原理是采用SQL Server提供的bcp命令提示符实用工具进行数据的批量复制。

bcp在SQL Server实例和数据文件之间以用户指定的格式复制数据[5,6]。

2.2实现学生信息按班级批量导入学生信息添加窗口如图1(a)所示。

需要先选定班级,再为该班级批量导入学生。

C#将Excel数据表导入SQL数据库的两种方法(高效率)

C#将Excel数据表导入SQL数据库的两种方法(高效率)

C#将Excel数据表导⼊SQL数据库的两种⽅法(⾼效率)⽅法⼀:使⽤bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。

using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.OleDb;namespace Test1{public partial class Form4 : Form{public Form4(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//connStr = "Server=USER-20180315FD;initial catalog=AliDataTech;user id=sa;password=wxd123456;Connect Timeout=5";//测试,将excel中的student导⼊到sqlserver的db_test中,如果sql中的数据表不存在则创建//string connString = "server = (local); uid = sa; pwd = wxd123456; database = db_test";string connString = "Server=USER-20180315FD;initial catalog=db_test;user id=sa;password=wxd123456;Connect Timeout=5";System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, "student", 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);//如果⽬标表不存在则创建,excel⽂件的第⼀⾏为列标题,从第⼆⾏开始全部都是数据记录string strSql = string.Format("if not exists(select * from sysobjects where name = '{0}') create table {0}(", sheetName); //以sheetName为表名 foreach (System.Data.DataColumn c in ds.Tables[0].Columns)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();mandText = strSql;command.ExecuteNonQuery();sqlconn.Close();}//⽤bcp导⼊数据//excel⽂件中列的顺序必须和数据表的列顺序⼀致,因为数据导⼊时,是从excel⽂件的第⼆⾏数据开始,不管数据表的结构是什么样的,反正就是第⼀列的 using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);bcp.BatchSize = 1;//每次传输的⾏数bcp.NotifyAfter = 1;//进度提⽰的⾏数bcp.DestinationTableName = sheetName;//⽬标表bcp.WriteToServer(ds.Tables[0]);}}catch (Exception ex){System.Windows.Forms.MessageBox.Show(ex.Message);}}//进度显⽰void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e){this.Text = e.RowsCopied.ToString();textBox1 .Text = e.RowsCopied.ToString();textBox1.Update();this.Update();}private void progressBar1_Click(object sender, EventArgs e){}}}⽅法⼆:先将Excel⽂件转换成DataTable,然后再循环将记录插⼊到数据库表中,这种⽅式可以任由程序员来选择将哪列数据导⼊到数据表的哪个字段中using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.OleDb;using System.Data.SqlClient;namespace Test1{public partial class Form5 : Form{public Form5(){InitializeComponent();}DataTable dt = new DataTable();//string connString = "Server=USER-20180315FD;initial catalog=db_test;user id=sa;password=wxd123456;Connect Timeout=5";string connString = "Server=USER-20180315FD;initial catalog=db_test;user id=sa;password=wxd123456;Connect Timeout=5";SqlConnection conn;private void button1_Click(object sender, EventArgs e){System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();if (fd.ShowDialog() == DialogResult.OK){string fileName = fd.FileName;bind(fileName);}}}private void bind(string fileName){string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + fileName + ";" +"Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'";OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [student$]", strConn); DataSet ds = new DataSet();try{da.Fill(ds);dt = ds.Tables[0];this.dataGridView1.DataSource = dt;}catch (Exception err){MessageBox.Show("操作失败!" + err.ToString());}}//将Datagridview1的记录插⼊到数据库private void button2_Click(object sender, EventArgs e){conn = new SqlConnection(connString);conn.Open();if (dataGridView1.Rows.Count > 0){DataRow dr = null;for (int i = 0; i < dt.Rows.Count; i++){dr = dt.Rows[i];insertToSql(dr);}conn.Close();MessageBox.Show("导⼊成功!");}else{MessageBox.Show("没有数据!");}}private void insertToSql(DataRow dr){//excel表中的列名和数据库中的列名⼀定要对应string name = dr["StudentName"].ToString();string sex = dr["Sex"].ToString();string no = dr["StudentIDNO"].ToString();string major = dr["Major"].ToString();string sql = "insert into student values('" + name + "','" + sex + "','" + no + "','" + major + "')"; SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();}}}。

把Excel表导入SQL数据库的两种方法

把Excel表导入SQL数据库的两种方法

把Excel表导入SQL数据库的两种方法SQLServer自身就有导入功能的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的数据提出放在数据集中,在通过循环将从表插入<%'On Error Resume Next'导入Excel电子表格数据到SQL Sever数据库Open_Conn(SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName,SqlConn)'创建数据库连接对象并打开数据库连接Dim ConnStr'SQL Server数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用IP)ConnStr = "Provider=Sqloledb; User ID=" & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"Set SqlConn = Server.CreateObject("ADODB.Connection")SqlConn.Open ConnStrIf Err ThenErr.ClearSet SqlConn = NothingResponse.Write "数据连接错误!"Response.EndEnd IfEndClose_Conn(SqlConn)'关闭数据库连接并清除数据库连接对象If IsObject(SqlConn) ThenSqlConn.CloseSet SqlConn = NothingEnd IfEndCall Open_Conn("Shat_EDG","","sa","(local)",SqlConn) '打开本地SQL Server数据库连接Call Open_Conn("Shat_EDG","","sa","ssh03",SqlConn1) '打开远程SQLServer数据库连接Get_EMP_CnName(NTACCNT)'根据用户NT帐号得到用户中文名Dim Sql1,Rs1Sql1 = "Select EMP_CNAME From RF_EMPLOYEE Where EMP_NTACCNT='"&NTACCNT&"'"Set Rs1 = Server.CreateObject("Adodb.RecordSet")Rs1.Open Sql1,SqlConn1,1,1If Rs1.Eof ThenGet_EMP_CnName = ""ElseGet_EMP_CnName = Rs1("EMP_CNAME")End IfRs1.CloseSet Rs1 = NothingEnd %><html><head><title>导入Excel电子表格数据到SQL Sever数据库</title><body bgcolor="#ACD9AF"><center><b>导入Excel电子表格数据到SQL Sever数据库</b></center><FORM METHOD="POST" name="form1">请选择数据源(本地库):<SELECT NAME="Table" title="请选择需要导入数据的表"><option></option><% Dim RsSqlDatabaseTableSet RsSqlDatabaseTable = SqlConn.OpenSchema(20)Do While Not RsSqlDatabaseTable.Eof %><option<%If Trim(Request("Table"))=RsSqlDatabaseTable(2) Then Response.Write " selected"%>><%=RsSqlDatabaseTable(2)%></option> <% RsSqlDatabaseTable.MoveNext:LoopSet RsSqlDatabaseTable = Nothing %></SELECT><input type=submit name=submit ="开始导出"><br>请选择目标表(远程库):<SELECT NAME="Table1" title="请选择需要导入数据的表"><option></option><% Dim RsSqlDatabaseTable1Set RsSqlDatabaseTable1 = SqlConn1.OpenSchema(20)Do While Not RsSqlDatabaseTable1.Eof %><option<%If Trim(Request("Table1"))=RsSqlDatabaseTable1(2) Then Response.Write " selected"%>><%=RsSqlDatabaseTable1(2)%></option> <% RsSqlDatabaseTable1.MoveNext:LoopSet RsSqlDatabaseTable1 = Nothing %></SELECT></FORM><font color=blue>导出过程中请不要刷新页面!</font><br><%If Trim(Request("Table1")) <> "" ThenDim Sql,RsSql = "Select * From Sheet1$" 'Sheet1$是我们实现用SQL Server自身数据转换功能得到的表名Set Rs = SqlConn.Execute(Sql)If Rs.Eof And Rs.Bof ThenResponse.write "没有找到您需要的数据!!<br>"ElseDo While Not Rs.EofSqlInsert = "Insert Into "&Trim(Request("Table1"))&"(EDG_Project_Name,EDG_Project_No,EDG_Project_VM,EDG_Project_VM_CnName ,EDG_Project_M,EDG_Project_M_CnName,EDG_Project_Director,EDG_Project_ Director_CnName) s ('"&Trim(Rs("工程名称"))&"','"&Trim(Rs("工程编号"))&"','"&Trim(Rs("项目副理"))&"','"&Trim(Rs("项目副理"))&" ("&Get_EMP_CnName(Trim(Rs("项目副理")))&")"&"','"&Trim(Rs("项目经理"))&"','"&Trim(Rs("项目经理"))&" ("&Get_EMP_CnName(Trim(Rs("项目经理")))&")"&"','"&Trim(Rs("项目总监"))&"','"&Trim(Rs("项目总监"))&" ("&Get_EMP_CnName(Trim(Rs("项目总监")))&")"&"')"' Response.Write SqlInsert'此处插入的值根据实际数据库结构进行调整SqlConn1.Execute(SqlInsert)'插入Excel表格裏所有东东Rs.MoveNextLoopResponse.Write "<font color=red>恭喜,成功导出数据!^_^</font><br>" End IfRs.CloseSet Rs = NothingEnd IfCall Close_Conn(SqlConn) '关闭Excel数据库连接Call Close_Conn(SqlConn1) '关闭SQL Server数据库连接 %>。

C#实现使用form上传Excel文件,导入Excel数据到SQLSERVER数据库

C#实现使用form上传Excel文件,导入Excel数据到SQLSERVER数据库

C#实现使⽤form上传Excel⽂件,导⼊Excel数据到SQLSERVER数据库上传类():///<summary>///单⽂件上传类 (暂时不⽀持多⽂件上传)///</summary>public class UploadFile{private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);private Dictionary<string, string> fileInfo = new Dictionary<string, string>();//上传⽂件信息private double fileSize = double.Parse(ConfigurationManager.AppSettings["maxRequestLength"]);//最⼤⽂件⼤⼩单位为KBprivate string filePath = HttpContext.Current.Request.PhysicalApplicationPath + "Upload\\";//⽂件保存路径private string fileType = ".xls";//允许上传的⽂件类型(EXCEL 2003) ⼩写public string message;//消息public string fileDir;//FilePath+Filename///<summary>///保存⽂件///</summary>///<param name="fileInputName">表单⽂件域(input type='file')name属性值</param>public void Save(string fileInputName){try{message = String.Empty;// 获取上传的⽂件HttpFileCollection file = HttpContext.Current.Request.Files;HttpPostedFile postFile = file[fileInputName];// 验证格式if (!this.CheckingType(postFile.FileName)){return;}// 获取存储⽬录string dir = this.filePath + this.fileInfo["Name"];// 保存⽂件postFile.SaveAs(dir);fileDir = dir;(dir + "上传成功!");}catch (Exception ex){if (ex.Message == "超过了最⼤请求长度。

c#语句_Excel文件数据库导入SQLServer数据库

c#语句_Excel文件数据库导入SQLServer数据库

c#语句_Excel文件数据库导入SQLServer数据库Excel文件数据库导入SQL Server数据库//方案一:通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server openFileDialog = new OpenFileDialog();openFileDialog.Filter = "Excel files(*.xls)|*.xls";if(openFileDialog.ShowDialog()==DialogResult.OK){FileInfo fileInfo = new FileInfo(openFileDialog.FileName);string filePath = fileInfo.FullName;string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";try{OleDbConnection oleDbConnection = new OleDbConnection(connExcel);oleDbConnection.Open();//获取excel表DataTable dataTable = oleDbConnection.GetOleDbSchemaT able(OleDbSchemaGuid.Ta bles, null);//获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素string tableName = dataTable.Rows[0][2].T oString().Trim();tableName = "[" + tableName.Replace("'","") + "]";//利用SQL语句从Excel文件里获取数据//string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;string query = "SELECT 日期,开课城市,讲师,课程名称,持续时间FROM " + tableName;dataSet = new DataSet();//OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);//OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);oleAdapter.Fill(dataSet,"gch_Class_Info");//dataGrid1.DataSource = dataSet;//dataGrid1.DataMember = tableName;dataGrid1.SetDataBinding(dataSet,"gch_Class_Info");//从excel文件获得数据后,插入记录到SQL Server的数据表DataTable dataTable1 = new DataTable();SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,classPlace, classTeacher, classTitle, durativeDate FROMgch_Class_Info",sqlConnection1);SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);sqlDA1.Fill(dataTable1);foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows){DataRow dataRow1 = dataTable1.NewRow();dataRow1["classDate"] = dataRow["日期"];dataRow1["classPlace"] = dataRow["开课城市"];dataRow1["classTeacher"] = dataRow["讲师"];dataRow1["classTitle"] = dataRow["课程名称"];dataRow1["durativeDate"] = dataRow["持续时间"];dataTable1.Rows.Add(dataRow1);}Console.WriteLine("新插入" + dataTable1.Rows.Count.ToString() + " 条记录"); sqlDA1.Update(dataTable1);oleDbConnection.Close();}catch(Exception ex){Console.WriteLine(ex.ToString());}}//方案二:直接通过SQL语句执行SQL Server的功能函数将Excel文件转换到SQL Server数据库OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "Excel files(*.xls)|*.xls";SqlConnection sqlConnection1 = null;if(openFileDialog.ShowDialog()==DialogResult.OK){string filePath = openFileDialog.FileName;sqlConnection1 = new SqlConnection();sqlConnection1.ConnectionString = "server=(local);integrated security=SSPI;initial catalog=Library";//import excel into SQL Server 2000/*string importSQL = "SELECT * into live41 FROM OpenDataSource" +"('Microsoft.Jet.OLEDB.4.0','Data Source=" + "\"" + "E:\\022n.xls" + "\"" +"; User Extended properties=Excel 5.0')...[Sheet1$]";*///export SQL Server 2000 into excelstring exportSQL = @"EXEC master..xp_cmdshell'bcp Library.dbo.live41 out " + filePath + "-c -q -S" + "\"" + "\"" +" -U" + "\"" + "\"" + " -P" + "\"" + "\"" + "\'";try{sqlConnection1.Open();//SqlCommand sqlCommand1 = new SqlCommand(); //sqlCommand1.Connection = sqlConnection1; ///doc/7914788370.html,mandT ext = importSQL;//sqlCommand1.ExecuteNonQuery();//MessageBox.Show("import finish!");SqlCommand sqlCommand2 = new SqlCommand(); sqlCommand2.Connection = sqlConnection1;/doc/7914788370.html,mandT ext = exportSQL;sqlCommand2.ExecuteNonQuery();MessageBox.Show("export finish!");}catch(Exception ex){MessageBox.Show(ex.ToString());}}if(sqlConnection1!=null){sqlConnection1.Close();sqlConnection1 = null;}//方案三:通过到入Excel的VBA dll,通过VBA接口获取Excel 数据到DataSet OpenFileDialog openFile = new OpenFileDialog();openFile.Filter = "Excel files(*.xls)|*.xls";ExcelIO excelio = new ExcelIO();if(openFile.ShowDialog()==DialogResult.OK){if(excelio!=null)excelio.Close();excelio = new ExcelIO(openFile.FileName);object[,] range = excelio.GetRange();excelio.Close();DataSet ds = new DataSet("xlsRange");int x = range.GetLength(0);int y = range.GetLength(1);DataTable dt = new DataTable("xlsTable");DataRow dr;DataColumn dc;ds.Tables.Add(dt);for(int c=1; c<=y; c++){dc = new DataColumn();dt.Columns.Add(dc);}object[] temp = new object[y];for(int i=1; i<=x; i++){dr = dt.NewRow();for(int j=1; j<=y; j++){temp[j-1] = range[i,j];}dr.ItemArray = temp;ds.Tables[0].Rows.Add(dr);}dataGrid1.SetDataBinding(ds,"xlsTable"); if(excelio!=null)excelio.Close();}。

C#语言开发Excel数据智能导入SQL2005数据库

C#语言开发Excel数据智能导入SQL2005数据库

5 )在 F o r ml中编 写 下 列 代 码 :
p u b l i c p a r t i a l c l a s s F o r m1: F o r m
2 开 发 环 境
帮陆 证} 憾 谣) 蠢署 锄 峨蕺 ) 且呸 _ 嘲 啦

p u b l i c s t r i n g C o n n e c t i o n S t r i n g=” I n t e g r a t e d Se c u r i t y= S SP I ; I n i t i a l Ca t a l o g=; : Da t a S o u r c e =l o c a l h o s t ; p u b l i c S q I Co n n e c t i o n c o n n= n u l l : p u b l i c S q l Co m ma n d c md=n u l I :
文 件 ,直 接 将 各 单 元 格 数 据 按 顺 序 插 人 到 数 据 库 表 相 应 的 字
段 。二 是先 将 E x c e l 文件 转换 成 D a t a T a b l e .然 后 将 D a t a T a b l e 记 录插 入 到 数 据 库 表 相 应 的 字 段 。这 两 种 方 法 的共 同 点 ,都 必 须 人 工 先 创建 数 据 库 ,然 后 再 根 据 E x c e l 文件 内容 ,创 建 相 应
4 )在 解 决 方 案 资 源 管 理器 中 添加 引用
弓 l 用一 一 添加弓 I 用一 一 . N E T 一 一M i c r o s o f t . O f i c e . I n t e mp . E x c e l

把excel表格里的数据导入sql数据库的两种方法 电脑资料

把excel表格里的数据导入sql数据库的两种方法 电脑资料

把excel表格里的数据导入sql数据库的两种方法电脑资料本来最近在研究微信公众平台的,老大临时交我个任务,把excel 表格里的数据导入sql数据库,我想这so easy嘛,把情况介绍下:在数据库中有如下这样结构的表(A表)我只取关键的及列里面还有很多数据。

有一张id和name对照的excel文件(B表)和N张结构类似的excel表(C表)(没有id那一列)我的任务在B表中找到C表中数据对应的id后,然后将id加到C 表中,最后根据id是唯一的,用C表的数据去更新A表的数据。

这里主要涉及了excel表格和数据库表间的转化。

是MySQL for Excel 是excel直接操作mysql数据库的一个插件,你可以像修改excel表格一样修改数据库,当然也可以进行表的合并等。

插件的安装,大家百度吧。

在使用这个的时候遇到了个问题,MySQL for Excel 能连接到本地的数据库,但在效劳器上的数据库总是连接不上。

方案一破产这里要注意两点一是excel表格中的手机号码要设置为文本格式 ,二是统一用繁体字。

出现空格乱码时,删除空格重写输入。

EXCEL数据上传到SQL SERVER中的简单实现方法Asp.中把Excel数据存储至SQL Server中的具体实现方法如何把Excel数据导入到SQLxx数据库的实例方法ASP将Excel数据导入到SQLServer的实现代码Excel导入Sqlserver数据库脚本Excel数据导入Mysql数据库的实现代码QQ空间搜狐微博人人网开心网百度搜藏更多复制链接收藏本文打印本文关闭本文返回首页上一篇:查询存储过程中特定字符的方法下一篇:SQL SERVER 2000通讯管道后复用劫持xx-01-01使用mongovue把sqlserver数据导入mongodb的步骤xx-06-06sqlserver 修改列名及表名的sql语句xx-11-11Sql function 多行中的列合并为一行一列的方法xx-04-04SQL Server的根本功能性语句介绍xx-03-03SQL高级应用之使用SQL查询Excel表格数据的方法xx-01-01配置 SQL Server xx 以允许远程连接的方法xx-11-11drop,truncate与delete的区别xx-08-08如何控制SQLServer中的跟踪标记xx-06-06SQLServer中临时表与表变量的区别分析数据连接池剖析解决SQL Server虚拟内存缺乏情况SQL2000 全文索引完全图解没有sa密码无法集成windows身份验证的小议sqlserver数据库主键选取策略使用BULK INSERT大批量导入数据 SQLSERVE获取MSSQL 表结构中字段的备注、主键等信Sql Server中一个表2个字段关联同一个表(Sql学习第四天——SQL 关于with cube,wit为数据库生成某个字段充填随机数的存储过sql server的一个有趣的bit位运算分享SQL Server xx图文安装教程SQL Server xx 安装图解教程(附sqlserver中distinct的用法(不重SQL Server导入、导出、备份数据SQL语句去掉重复记录,获取重复记SQL Server数据库入门学习SQL Server错误代码大全及解释(sql convert函数使用小结sql 时间函数的比拟全了用SQL语句添加删除修改字段、一些。

利用C#将Excel数据导入SQL Server的设计与实现

利用C#将Excel数据导入SQL Server的设计与实现

利用C#将Excel数据导入SQL Server的设计与实现【摘要】在某研发项目中,需要把采集的数据先临时输入excel文件中,然后导入到sql server中进行综合分析处理。

文章设计了一个交互性好的数据批量导入程序,方便用户选择excel文件随时导入。

【关键词】 excel;sql server;数据导入【 abstract 】 in a r&d projects, the data collected need to provisionally input to the excel file, then import to sql server to further comprehensive analysis and processing. in this paper, a interactive data batch import program is designed, which facilitates the user to select and import an excel file to sql server at any time.【 keywords 】 excel; sql server; data importing0 引言sql server是微软公司推出的大型数据库管理系统,市场占有率高,主要用于网络环境,不适合手工直接录入数据。

而excel也是微软公司的office办公产品之一,作为电子表格使用非常方便,适合单机采集手工录入数据。

在一个科研项目中,需要使用excel临时保存采集的数据,然后统一导入sql server中的某数据库中。

下面给出具体的操作步骤。

1 在sql server中创建数据库在sql server中创建数据库的方式有三种:第一种是手工建库,效率低下容易出错;第二种是利用存储过程建库;第三种是在程序代码中嵌入sql指令建库。

后两种方式各有利弊,存储过程建库时,表结构容易修改;代码中建库指令经过编译后是不能修改的,此处选择了存储过程建库。

利用C#将Excel数据导入SQL Server的设计与实现

利用C#将Excel数据导入SQL Server的设计与实现
代 码 中 建 库 指 令 经 过 编 译 后 是 不 能 修 改 的 , 处 选 择 了 此
GO
US ECO AC NT T一建 数据 表 . .
CR ATE TA L P E B E HONE LS -通 讯 录 IT -

( I HA D C  ̄00 r r e , 一 1 i  ̄ky -编号 , p ma r 主键 限制不重复 NAMEVAR H C AR(0 ) 2 0 NOTN L, UL 一姓 名 , 不
【 bt c 】n & o c , e a lcd edo r i nli utt cll t nm o Q e etf hro p hni a s A sat Ia Dp j t t tc lt e os a pt e xef , e pro L r r recm r ese nli r R re s h d a oe e n tp v i ln h E e h i t S Sv u e v a ys o y o i t o t
a a yt . tn i me
【 ewo s】xe S L e e dtipr g Ky r ecl Q r r a oi d ; s v ; am t n
0 引言
S ev r 微 软 公 司 推 出 的 大 型数 据 库 管 理 系 QLS re 是 统 , 场 占有 率高 , 市 主要 用于 网络 环境 , 不适合 手 工 直接

开磁盘
{ /打开文 件对 话框 / o e Fl=n w O e Fl ao 0 pn i e e p n i Dilg ; e
D s n a d I lm n o I otD t rm E c l o S ev r e i n mp e tt mp r aa f xe t QL S re g e o

基于C#实现SQL Server与Excel间数据的导入导出

基于C#实现SQL Server与Excel间数据的导入导出

基于C#实现SQL Server与Excel间数据的导入导出【摘要】在多数信息系统的使用过程中常涉及到数据库内数据的导入与导出问题,如何实现SQL Server与Excel间数据的导入导出,修正数据在导出过程中出现的格式错误是本文所要解决的主要问题。

【关键词】C#;SQL Server;Excel;数据导入导出1 数据库数据的导入与导出一般信息系统运行初始,首先需要初始化一些基础数据,如数据字典,然后再录入信息系统需要处理的数据。

如果人工初始这些数据,效率低,易出错,这时我们可以提前准备好初始化数据,一次性导入数据库中,此过程称为向数据库导入数据。

当信息系统运行一段时间后,需要将其中一些数据导出作为备份,或将导出数据进行格式处理后生成相应报表,一般将数据库数据导出为相关文件,此过程称为由数据库导出数据。

2 数据导出存在问题当数据库数据导出至Excel文件时,通常有如下几种数据发生变化:①形如“001”的字符串数据导出至Excel工作表单元格时,变为数值“1”。

②形如“220203************”的字符串数据导出至Excel工作表单元格时,变为数值“2.20203E+17”。

③形如“2012-1-2”的日期数据导出至Excel工作表单元格时,变为“2012/1/2”,日期格式发生变化。

发生以上数据变化的原因是Excel工作表单元格默认格式为“常规”引起的。

在下面的示例中将给出解决方法。

3 示例实现本示例实现客户表(client)数据的导入与导出。

程序运行界面如图1所示,客户表各字段类型如图2所示,准备导入数据的Excel工作表数据如图3所示,导入数据后客户表如图4所示,由客户表导出数据至Excel工作表显示如图3所示。

说明:本文仅实现数据导入导出过程中涉及的重要步骤及方法。

实现步骤:(1)添加引用为项目添加.NET引用:Microsoft.Office.Interop.Excel,版本11。

C#将Excel数据导入数据库(MySQL或SqlServer)

C#将Excel数据导入数据库(MySQL或SqlServer)

C#将Excel数据导⼊数据库(MySQL或SqlServer) 最近⼀直很忙,很久没写博客了。

今天给⼤家讲解⼀下如何⽤C#将Excel数据导⼊Excel,同时在⽂章最后附上如何⽤sqlserver和mysql⼯具导⼊数据。

1.将excel数据导⼊到DataSet中;2.将DataSet⾥⾯的数据遍历插⼊到对应的数据库 需添加引⽤using System.Data; using System.Data.OleDb;public static DataSet ReadExcel(string filepath){try{string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";OleDbConnection oleConn = new OleDbConnection(strConn);oleConn.Open();string sql = "select * from [Sheet1$]";OleDbDataAdapter oleDaExcel = new OleDbDataAdapter(sql, oleConn);DataSet oleDsExcel = new DataSet();oleDaExcel.Fill(oleDsExcel, "table1");oleConn.Close();return oleDsExcel;}catch (Exception){return null;throw;}} ⾸先判断excel时候存在,当然如果你已经知道⽂件的所在位置,这⼀步可以跳过。

string filename = @"C:\Users\Administrator\Desktop\礼品列表\礼品张曦合并版本(卡券创建完整信息).xlsx";if (!System.IO.File.Exists(filename))throw new Exception("指定路径的Excel⽂件不存在!"); 其次将DataSet⾥⾯的数据,读取出来并包装成数据插⼊语句。

excel数据导入SQL数据库的教程

excel数据导入SQL数据库的教程

excel数据导入SQL数据库的教程在使用excel的时候会需要用到excel数据导入sql数据库的技巧,将数据导入到SQL数据库中可以更方便的进行管理与修改,如果不懂得如何使用excel数据导入sql数据库技巧的朋友不妨一起来研究学习一番,下面是由店铺分享的excel数据导入SQL数据库的教程,以供大家阅读和学习。

excel数据导入SQL数据库的教程:数据导入sql数据库步骤1:打开SQL Server Management Studio,按图中的路径进入导入数据界面。

数据导入sql数据库步骤2:导入的时候需要将EXCEL的文件准备好,不能打开。

点击下一步。

数据导入sql数据库步骤3:数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。

数据导入sql数据库步骤4:选择需要导入的EXCEL文件。

点击浏览,找到导入的文件确定。

数据导入sql数据库步骤5:再次确认文件路径没有问题,点击下一步。

数据导入sql数据库步骤6:默认为是使用的WINODWS身份验证,改为使用SQL身份验证。

输入数据库密码,注意:数据库,这里看看是不是导入的数据库。

也可以在这里临时改变,选择其它数据库。

数据导入sql数据库步骤7:选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。

点击下一步。

数据导入sql数据库步骤8:选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。

点击进入下一步。

数据导入sql数据库步骤9:点击进入下一步。

数据导入sql数据库步骤10:在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。

数据导入sql数据库步骤11:可以看到任务执行的过程和进度。

数据导入sql数据库步骤12:执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。

大白话系列-C#编写Excel数据导入SQL Server数据库

大白话系列-C#编写Excel数据导入SQL Server数据库

大白话系列—C#编写Excel数据导入SQL Server数据库【完整代码附在文档最后】大白话系列宗旨:打破自身基础高低的壁垒,用最简单白话的语言,让最低基础的童鞋也能轻松编程。

项目描述:在我们日常的数据库工作中经常会遇到这种问题:存放在Excel表格中的大量数据需要导入进数据库表中,如果靠人工去输入无疑会产生巨大的工作量,而且也增大了数据错误的概率。

本项目旨在通过C#编写小软件,从而实现将本地Excel表格中数据快速导入到数据库表中。

本示例使用SQL Server数据库。

环境:VS2010、SQL Server2008详细步骤(完整代码附在文档最后):(完整代码附在文档最后)一、建立数据库1、打开SQL Server 2008下的SQL Server Management Studio,连接进入主界面。

2、在主界面左侧找到“数据库”文件夹,右键点击“新建数据库”,并对数据库进行命名,此处命名为“TTT”。

3、点击“确定”,即建立了一个名为“TTT”的数据库。

二、新建数据表(完整代码附在文档最后)1、在主界面左侧的“TTT”文件夹下找到“表”文件夹,右键点击,选择“新建表”,此时弹出窗口对该表命名,此处命名为“dbo.Sheet1$”2、在弹出的界面中给新建表添加列名及其类型,并保存。

此表中的列名数要与需导入的Excel中列数相同。

范例如图:三、新建C #项目(完整代码附在文档最后)1、找到并打开VS2010软件,新建项目。

2、在弹出的窗口中左侧选择Visual C#下的Windows,然后在右侧选择“Windows窗体应用程序”,然后在下侧修改项目名称。

点击确定,即创建了一个窗体。

四、给窗体添加控件(完整代码附在文档最后)1、在主界面左侧找到工具箱(若无工具箱,可在主界面“视图”选项卡下选择“工具箱”即可显示),在工具箱中找到dataGridVIew 控件双击,即可在窗体中添加该控件。

该控件作为Excel数据插入过程的中继。

C#连接Excel读取与写入数据库SQL(上)

C#连接Excel读取与写入数据库SQL(上)

C#连接Excel读取与写⼊数据库SQL(上)第⼀次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中。

先上读取Excel⽂件的code如下。

public bool GetFiles(string equipName){//choose all sheet? or all data in sheet?string strExcel = "select * from [Sheet1$]";//初始化system.IO的配置(路径)DirectoryInfo directoryInfo1 = new DirectoryInfo(WPath + equipName + "\\Working");//⽤⽂件流来获取⽂件夹中所有⽂件,存放到FileInfo[] files1 = directoryInfo1.GetFiles();foreach (FileInfo file in files1) // Directory.GetFiles(srcFolder){// 连接到excel 数据源, xlsx要⽤ACEstring strConn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source= " + file.FullName + "; Extended Properties='Excel 12.0';");OleDbConnection OledbConn = new OleDbConnection(strConn);if (IsUsed(file.FullName)){flag = IsUsed(file.FullName);continue;}try{OledbConn.Open();// 存⼊datatableOleDbDataAdapter dAdapter = new OleDbDataAdapter(strExcel, strConn); //写⼊ds中的⼀个tabledAdapter.Fill(ds);OledbConn.Dispose();OledbConn.Close();}catch (Exception ex){}}}foreach⽤于遍历所有Excel⽂件;strExcel⽤于选择Excel⽂件中sheet的内容,select * 表⽰选取sheet中所有⾏和列;strConn⽤于设置读取的⽅法,provider的设置很重要,ACE表⽰最新的.xlsx⽂件,jet 表⽰读取.xls⽂件,两者有点区别,DataSource表⽰⽂件名,包括路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c#实现excel数据高效导入到sql数据库本文来自: IT知道网() 详细出处参考:/html/net/c/20081210/3092.html本文实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。

不但速度快,而且代码简单,下面测试代码导入一个6万多条数据的sheet,包括读取(全部读取比较慢)在我的开发环境中只需要10秒左右,而真正的导入过程只需要4.5秒。

using System;using System.Data;using System.Windows.Forms;using System.Data.OleDb;namespace WindowsApplication2{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//测试,将excel中的sheet1导入到sqlserver中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.Ace.12.0.OLEDB.12.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 12.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(&apos;{0}&apos;) is null createtable {0}(", sheetName);foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format("[{0}] varchar(255),", c.ColumnName);}strSql = strSql.Trim(&apos;,&apos;) + ")";using (System.Data.SqlClient.SqlConnection sqlconn = newSystem.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();System.Data.SqlClient.SqlCommand command =sqlconn.CreateCommand();mandText = strSql;command.ExecuteNonQuery();sqlconn.Close();}//用bcp导入数据using (System.Data.SqlClient.SqlBulkCopy bcp = newSystem.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += newSystem.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);bcp.BatchSize = 100;//每次传输的行数bcp.NotifyAfter = 100;//进度提示的行数bcp.DestinationTableName = sheetName;//目标表bcp.WriteToServer(ds.Tables[0]);}}catch (Exception ex){System.Windows.Forms.MessageBox.Show(ex.Message);}}//进度显示void bcp_SqlRowsCopied(object sender, ystem.Data.SqlClient.SqlRowsCopiedEventArgs e){this.Text = e.RowsCopied.ToString();this.Update();}}}using System;using System.Data;using System.Windows.Forms;using System.Data.OleDb;namespace WindowsApplication2{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){//测试,将excel中的sheet1导入到sqlserver中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(&apos;{0}&apos;) 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(&apos;,&apos;) + ")";using (System.Data.SqlClient.SqlConnection sqlconn = newSystem.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();System.Data.SqlClient.SqlCommand command =sqlconn.CreateCommand();mandText = strSql;command.ExecuteNonQuery();sqlconn.Close();}//用bcp导入数据using (System.Data.SqlClient.SqlBulkCopy bcp = newSystem.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += newSystem.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);bcp.BatchSize = 100;//每次传输的行数bcp.NotifyAfter = 100;//进度提示的行数bcp.DestinationTableName = sheetName;//目标表bcp.WriteToServer(ds.Tables[0]);}}catch (Exception ex){System.Windows.Forms.MessageBox.Show(ex.Message);}}//进度显示void bcp_SqlRowsCopied(object sender,System.Data.SqlClient.SqlRowsCopiedEventArgs e){this.Text = e.RowsCopied.ToString();this.Update();}}} 上面的TransferData基本可以直接使用,如果要考虑周全的话,可以用oledb来获取excel 的表结构,并且加入ColumnMappings来设置对照字段,这样效果就完全可以做到和sqlserver 的dts相同的效果了。

相关文档
最新文档