excel导入sql数据库到数据库

2769人阅读
本来想把导入数据库后的数据通过gridview控件全部显示到界面,因为一旦进入页面所有控件的已经初始化好了,所以必须使用刷新数据源或用代码实现不用控件来绑定数据源,某位实现了这个功能可以发表下自己的意见using S
using System.Collections.G
using System.L
using System.W
using System.Web.UI;
using System.Web.UI.WebC
using System.D
using System.C
using System.Windows.F
using System.Data.OleDb;
using System.Data.SqlC
public partial class Excel导入_Default : System.Web.UI.Page
private st
private static string saveP
private static DataS //要插入的数据
private static DataT
protected void Page_Load(object sender, EventArgs e)
//上传文件到指定的服务器
protected void Button1_Click1(object sender, EventArgs e)
filename = this.fileUploadExcel.FileN
//savePath必须包含表名在内的所有路径名
savePath = @&G:\项目组文件\项目.net学习资料\工程\Health\Excel导入\Files\& + this.fileUploadExcel.FileN
//上传服务器文件的存储,存在当前新建的文件夹
this.fileUploadExcel.SaveAs(savePath);
Boolean judge_excel = Judge_Excel();
if (!judge_excel)
MessageBox.Show(&上传的不是excel文件&, &标题&, MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
MessageBox.Show(&上传文件成功&, &标题&, MessageBoxButtons.OKCancel, rmation);
//测试,将excel中的sheet1导入到sqlserver中
//string connString = &server=uid=pwd=database=master&;
//System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
//if (fd.ShowDialog() == DialogResult.OK)
//TransferData(fd.FileName, &sheet1&, connString);
//判断文件是否是excel文件函数
protected Boolean Judge_Excel()
string fileExtend = System.IO.Path.GetExtension(this.fileUploadExcel.FileName);
if (fileExtend == &.xlsx& || fileExtend == &.xls&)
//获取excel数据按钮的触发,
protected void Button2_Click(object sender, EventArgs e)
ExcelToDataSet();
MessageBox.Show(&获取数据成功&, &标题&, MessageBoxButtons.OKCancel, rmation);
//从excel表中获取数据的函数
public void ExcelToDataSet()
string strConn = &Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = & + savePath + &;Extended Properties=\&Excel 8.0;HDR=YIMEX=1\&&;
OleDbConnection conn = new OleDbConnection(strConn); //连接excel
if (conn.State.ToString() == &Open&)
conn.Close();
conn.Open();
//外部表不是预期格式,不兼容2010的excel表结构
string s = conn.State.ToString();
OleDbDataAdapter myCommand =
/*DataTable yTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, &TABLE& });//获取表的框架,几行几列
string tableName = yTable.Rows[0][&filename&].ToString(); //表示的是几行几列
string strSel = &select * from [& + filename + &]&;//xls */
string strExcel = &select * from [sheet1$]&;
//如果有多个sheet表时可以选择是第几张sheet表
myCommand = new OleDbDataAdapter(strExcel, conn);//用strExcel初始化myCommand,查看myCommand里面的表的数据??
ds = new DataSet();
myCommand.Fill(ds);
//把表中的数据存放在ds(dataSet)
conn.Close();
dt = ds.Tables[0];
this.dataGridView1.DataSource =
catch (Exception err)
MessageBox.Show(&操作失败!& + err.ToString());
//excel导入数据库sql的按钮触发
protected void Button3_Click(object sender, EventArgs e)
//string path = @&D:\数据库SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test.mdf&;
string connString = &server=uid=pwd=1234;database=Test&;
//连接数据库的路径方法
//String connString=@&server=uid=pwd=1234;database=D:\数据库SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test.mdf&;
SqlConnection conn = new SqlConnection(connString);
conn.Open();
DataRow dr =
int C_Count = dt.Columns.C//获取列数
for (int i = 0; i & dt.Rows.C i++)
//记录表中的行数,循环插入
dr = dt.Rows[i];
insertToSql(dr, C_Count, conn);
conn.Close();
if (dataGridView1.Rows.Count & 0)
//把数据库表中的数据显示到表中,可判断有没有数据
MessageBox.Show(&导入成功!&);
MessageBox.Show(&没有数据!&);
//使用bcp,不容易出错而且效率高
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connString))
bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = saveP//目标表
bcp.WriteToServer(ds.Tables[0]);
System.Windows.Forms.MessageBox.Show(ex.Message);
//插入数据库的函数
protected void insertToSql(DataRow dr, int column_count, SqlConnection conn)
//excel表中的列名和数据库中的列名一定要对应
string name = dr[0].ToString();//需要把内个列都列出来
string age = dr[1].ToString();
string sex = dr[2].ToString();
//当数据库中有多个表时,怎么分辨插入的表
string sql = &insert into 客户 values('& + name + &','& + age + &','& + sex + &')&;
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
//从excel表中获取数据并存在
protected void ImportFromExcel()
string execelConnectionStr = @&Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
Extended Properties=&&Excel 8.0;HDR=YES;IMEX=1\&&&;//表第一行是标题,不做为数据使用, Excel 档案只能用来做“读取”用途。
ds = new DataSet();
string connString = &Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = &
+ savePath + &;Extended Properties=\&Excel 8.0;HDR=YIMEX=1\&&;
DataTable table = OleDbHelper.GetExcelTables(connString);
if (table == null || table.Rows.Count &= 0)
foreach (DataRow dr in table.Rows)
string cmdText = &select * from [& + dr[&TABLE_NAME&].ToString() + &]&;
DataTable dt = OleDbHelper.FillDataTable(connString, cmdText);
dt.TableName = dr[&TABLE_NAME&].ToString();
ds.Tables.Add(dt);
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:29810次
排名:千里之外
原创:50篇
评论:14条
(1)(3)(1)(4)(2)(2)(3)(14)(10)(10)(2)(6)Excel导入导出到数据库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
5页免费12页1下载券3页免费5页免费2页1下载券 6页1下载券2页1下载券6页2下载券9页1下载券3页免费
喜欢此文档的还喜欢2页免费3页免费4页2下载券4页1下载券2页免费
Excel导入导出到数据库|c​#​.​n​e​t​开​发​好​用​的​E​x​c​e​l​导​入​导​出​到​数​据​库
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:8.46KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
请扫描分享到朋友圈如何将excel导入到数据库中?_百度知道
如何将excel导入到数据库中?
何excel导入数据库
按默认排序
其他2条回答
数据库mssql数据库打企业管理器展服务器-展数据库-右键点击数据库名字(想excel数据导入数据库-所任务-导入数据按照提示步步简单
如果你想导入到SQL中,直接用DTS导入就可以
excel的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 excel导入sql数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信