将Excel中数据导入数据库(三)

时间:2021-10-13 07:57:55

  上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入。比如表WQ_SWMSAR_A字段定义如下:

  将Excel中数据导入数据库(三)

  其中RESULTID为自增长字段。

  可利用以下语句插入:

insert into [WaterQuality2].[dbo].[WQ_SWMSAR_A]
(STCD,ASOT,ASDR,WQG,MESPEST) values(
'1','2013-07-25','30','6','chenyuming')

  插入结果如下:

  将Excel中数据导入数据库(三)

  所以对于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;
}

   当然这里有个性能劣点:每插入一行数据均进行了打开与关闭数据库。

 

  相关文章:

  (1)将Excel中数据导入数据库(一)

  (2)将Excel中数据导入数据库(二)

  (3)将Excel中数据导入数据库(三)