作为一个程序猿,应该经常遇到数据导入的功能实现,通过网上查阅资料找到普遍使用的两种方式,第一种:利用DataGridView组件作为中间载体进行导入;第二种:利用SqlBulkCopy类进行导入,那么对于这两种数据导入的方式,哪一种方式效率更高呢?我没事的时候进行了这两种方式导入效率的测试,这里分享出来仅供大家参考。
首先,我先简单介绍两种数据导入的方式作一个简单的说明。
第一种方式相信大家用得比较频繁,方法步骤为:
1.实例化一个OpenFileDialog类来选择数据存放的Excel文件;
2.实例化一个DataSet,DataSet ds = new DataSet();
3.创建Excel驱动连接字符串,string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";(说明:我用的是Office 2010,所以Provider用得OLEDB 12.0,其他低版本好像是用OLEDB 8.0,Office 版本不一样连接字符串就不一样,具体的可以网上查)
4.实例化一个OleDbConnection对象,OleDbConnection conn = new OleDbConnection(strConn) ;
5.打开连接,conn.Open();
6.实例化一个DataTable,用来获取Excel架构 包括各个sheet表的名称,类型,创建时间和修改时间等,DataTable excelSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
7.实例化一个长度为excelSheet的行数的字符串数组来装sheet表的名称,string[] sheetNames = new string[excelSheet.Rows.Count];
8.将
首先,我先简单介绍两种数据导入的方式作一个简单的说明。
第一种方式相信大家用得比较频繁,方法步骤为:
1.实例化一个OpenFileDialog类来选择数据存放的Excel文件;
2.实例化一个DataSet,DataSet ds = new DataSet();
3.创建Excel驱动连接字符串,string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";(说明:我用的是Office 2010,所以Provider用得OLEDB 12.0,其他低版本好像是用OLEDB 8.0,Office 版本不一样连接字符串就不一样,具体的可以网上查)
4.实例化一个OleDbConnection对象,OleDbConnection conn = new OleDbConnection(strConn) ;
5.打开连接,conn.Open();
6.实例化一个DataTable,用来获取Excel架构 包括各个sheet表的名称,类型,创建时间和修改时间等,DataTable excelSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
7.实例化一个长度为excelSheet的行数的字符串数组来装sheet表的名称,string[] sheetNames = new string[excelSheet.Rows.Count];
8.将