excel的数据很大,大概是10万行多,有什么好的方式插入到数据库呢?1.是客户上传的excel
2,上传完毕写入到数据库请大家给解决方式!!!!!!!1
thx

解决方案 »

  1.   

    http://weibo.com/npoi
    npoi,不打开excel,直接文件操作
      

  2.   

        /// <summary>  
        /// 解析Excel,根据OleDbConnection直接连Excel  
        /// </summary>  
        /// <param name="filePath"></param>  
        /// <param name="name"></param>  
        /// <returns></returns>  
        public static DataSet LoadDataFromExcel(string filePath, string name)  
        {  
          try  
          {  
            string strConn;  
            //  strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filePath + ";Extended Properties=Excel 8.0";  
            strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=No\"";  
           OleDbConnection OleConn = new OleDbConnection(strConn);  
            OleConn.Open();  
            string sql = "SELECT * FROM [" + name + "$]";//可是更改Sheet名称,比如sheet2,等等   
            OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);  
            DataSet OleDsExcle = new DataSet();  
            OleDaExcel.Fill(OleDsExcle, name);  
            OleConn.Close();  
            return OleDsExcle;  
          }  
          catch (Exception err)  
          {  
            MessageBox.Show("数据绑定Excel失败! 失败原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);  
            return null;  
          }  
        }  
      

  3.   

    分两步:
    1、读取这个Excel文件。这个问题6楼给出了代码。
    2、插入mysql数据库。这个问题请看我的博客:http://blog.csdn.net/guwei4037/article/details/6455825
      

  4.   


    我说过了,数据量很大的,是n多的sql的insert 语句,在一个open的连接,我怕会timeout啊
      

  5.   


    在遍历时判断数据的数量,例如100条,每次累积到100条就执行一次sql插入操作,但是具体一次可以执行多少数据,还要实际测试,不同的网络环境、不同的电脑,执行的数量可能不一样