zoukankan      html  css  js  c++  java
  • 将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中数据导入数据库(三)

  • 相关阅读:
    王道训练营-C语言-1
    错排问题
    王道训练营-C语言-1
    图文处理 生成海报
    根据经纬度按距离排序
    vue总结
    docker+consul
    doker es
    知识库
    php笔记
  • 原文地址:https://www.cnblogs.com/danshui/p/3215278.html
Copyright © 2011-2022 走看看