相信大家在寫程序和網站的時候,經常會碰到客戶提出需要用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數據庫就完成了!如果你需要上海網站建設記得一定要聯系我們 88331.xyz 波宇網絡!