相信大家在写程序和网站的时候,经常会碰到客户提出需要用EXCEL导入数据库的功能,今天上海做网站的波宇网络,来教大家最基本的EXCEL导入数据库功能。
1.上传EXCEL文件,添加FileUpload控件,设置上传文件夹保存文件。
//获取上传文件名称
string fname = FileUpload1.FileName;
//获取上传文件夹实际路径
string pt = Server.MapPath("/upexcel\\");
//保存文件
FileUpload1.SaveAs(pt + fname);
2.读取上传的EXCEL文件,写入DATASET
//数据集ds
DataSet ds = new DataSet();
//获取excel全部数据 存入数据集
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);
3.根据DATASET创建SQLSERVER数据库表
//根据excel中数据创建新表默认代码是每次导入删除旧表建立新表。 下面注释的是每次导入不重新删除建立新表的代码
//string strSql = string.Format("if object_id('{0}') is null create table {0}(", sheetName);
string strSql = @"if object_id('" + sheetName1 + @"') is not null drop table " + sheetName1 + @" create table " + sheetName1 + " (";
foreach (System.Data.DataColumn c in ds.Tables[0].Columns)
{
strSql += string.Format("[{0}] varchar(50),", c.ColumnName);//在此我都以varchar(50)字段类型为类的,可根据自己的需求进行编写
}
//strSql = strSql.Trim(',') + ")";
strSql = strSql.Substring(0, strSql.LastIndexOf(',')) + ")";
SqlConnection sqlconn = new SqlConnection(connectionString);
sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();
4.使用SQLSERVER BCP 把DATASET导入SQLSERVER数据库表中
//用bcp导入数据
SqlBulkCopy bcp = new SqlBulkCopy(connectionString);
bcp.DestinationTableName = sheetName1;//目标表
bcp.WriteToServer(ds.Tables[0]);//复制表
好了一个简单的EXCEL导入SQLSERVER数据库就完成了!如果你需要上海网站建设记得一定要联系我们 www.pooyoo.net 波宇网络!