將oledb讀取的excel資料快速插入的sqlserver中,很多人通過迴圈來拼接sql,這樣做不但容易出錯而且效率低下,最好的辦法是使用bcp,也就是system.data.sqlclient.sqlbulkcopy 類來實現。不但速度快,而且**簡單,下面測試**匯入乙個6萬多條資料的sheet,包括讀取(全部讀取比較慢)在我的開發環境中只需要10秒左右,而真正的匯入過程只需要4.5秒。
private void button1_click(object sender, eventargs e)
}public void transferdata(string excelfile, string sheetname, string connectionstring)
$]", sheetname);
mycommand = new oledbdataadapter(strexcel, strconn);
mycommand.fill(ds, sheetname);
//如果目標表不存在則建立
string strsql = string.format("if object_id('') is null create table (", sheetname);
foreach (system.data.datacolumn c in ds.tables[0].columns)
] varchar(255),", c.columnname);
}strsql = strsql.trim(',') + ")";
using (system.data.sqlclient.sqlconnection sqlconn = new system.data.sqlclient.sqlconnection(connectionstring))
//用bcp匯入資料
using (system.data.sqlclient.sqlbulkcopy bcp = new system.data.sqlclient.sqlbulkcopy(connectionstring))
}catch (exception ex)
}//進度顯示
void bcp_sqlrowscopied(object sender, system.data.sqlclient.sqlrowscopiedeventargs e)}}
獲取excel結構的方法可以參考我先前的文章
c 中高效的excel匯入sqlserver的方法
將oledb讀取的excel資料快速插入的sqlserver中,很多人通過迴圈來拼接sql,這樣做不但容易出錯而且效率低下,最好的辦法是使用 bcp,也就是system.data.sqlclient.sqlbulkcopy 類來實現。不但速度快,而且 簡單,下面測試 匯入乙個6萬多條資料的sheet...
c 中高效的excel匯入sqlserver的方法
將oledb讀取的excel資料快速插入的sqlserver中,很多人通過迴圈來拼接sql,這樣做不但容易出錯而且效率低下,最好的辦法是使用bcp,也就是system.data.sqlclient.sqlbulkcopy 類來實現。不但速度快,而且 簡單,下面測試 匯入乙個6萬多條資料的sheet,...
c 中高效的excel匯入sqlserver的方法
將oledb讀取的excel資料快速插入的sqlserver中,很多人通過迴圈來拼接sql,這樣做不但容易出錯而且效率低下,最好的辦法是使用bcp,也就是system.data.sqlclient.sqlbulkcopy 類來實現。不但速度快,而且 簡單,下面測試 匯入乙個6萬多條資料的sheet,...