将Excel中数据导入数据库(三)
上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入。比如表WQ_SWMSAR_A字段定义如下:
其中RESULTID为自增长字段。
可利用以下语句插入:
insert into [WaterQuality2].[dbo].[WQ_SWMSAR_A] (STCD,ASOT,ASDR,WQG,MESPEST) values('1','2013-07-25','30','6','chenyuming')
插入结果如下:
所以对于DataTable数据导入到数据库的通用函数可以写成如下形式:
// 从System.Data.DataTable导入数据到数据库(by chenyuming) public int InsetData(System.Data.DataTable dt, string tableName) { int i = 0; for (int rowIndex = 0; rowIndex < dt.Rows.Count; rowIndex++) { string strSql = "Insert into " +tableName +"("; string strValue = ""; for (int colIndex = 0; colIndex < dt.Columns.Count; colIndex++) { if(colIndex == 0) { strSql += dt.Columns[colIndex].ColumnName; strValue += dt.Rows[rowIndex][colIndex]; } else { strSql += "," + dt.Columns[colIndex].ColumnName; strValue += "," + dt.Rows[rowIndex][colIndex]; } } strSql += ") values ('"; strSql += strValue; strSql += ")"; String strConnection = ConfigurationSettings.AppSettings["ConnectionStr"].ToString(); SqlConnection sqlConnection = new SqlConnection(strConnection); try { sqlConnection.Open(); SqlCommand sqlCmd = new SqlCommand(); sqlCmd.CommandText = strSql; sqlCmd.Connection = sqlConnection; SqlDataReader sqlDataReader = sqlCmd.ExecuteReader(); i++; sqlDataReader.Close(); } catch (Exception ex) { throw ex; } finally { sqlConnection.Close(); } } return i; }
当然这里有个性能劣点:每插入一行数据均进行了打开与关闭数据库。
相关文章:
(3)将Excel中数据导入数据库(三)