淡水求咸

博客园已经停止更新,请移步 http://lovecjh.com/

导航

将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;
        }

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

 

  相关文章:

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

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

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

posted on 2013-07-25 20:40  深圳彦祖  阅读(1417)  评论(0编辑  收藏  举报