OleDbDataAdapter不从服务器中的Excel中读取所有数据但在本地系统中正常工作

我有问题使用C#从Excel中读取数据(它包含超过30,000行)。 当我在本地系统testing它工作正常,即它复制从Excel中的所有行,但是当我部署和运行在生产服务器,它只能读取约12,000行)。

我也尝试过使用BulkCopy,但是也一样。 它是否必须做任何与networking服务器(我的networking服务器是Windows Server 2008)?

请帮助我。 谢谢

protected void ImportFromExcelToTempCompetitionTable(string filename) { string strConn = "Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=" + filename + ";" + "Extended Properties=Excel 12.0"; OleDbDataAdapter cmdOle; cmdOle = new OleDbDataAdapter("SELECT [StringColA], [StringColB], [NumberCol1], [NumberCol2] from [XYZSheet]", strConn); try { Boolean blnSuccess = false; DataSet ds = null; ds = new DataSet(); cmdOle.Fill(ds); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { //***************** using (cnn = new SqlConnection(util.GetConnectionString())) { string sqlQuery = "INSERT INTO tbl_XYZ(StringColA, StringColB, NumberCol1,NumberCol2) values (@StringColA, @StringColB, @NumberCol1, @NumberCol2)"; cmd = new SqlCommand(sqlQuery, cnn); cmd.CommandType = CommandType.Text; SqlParameter StringColA= new SqlParameter("@StringColA", SqlDbType.VarChar, 500); StringColA.Value = dr["StringColA"].ToString(); cmd.Parameters.Add(StringColA); SqlParameter StringColB= new SqlParameter("@StringColB", SqlDbType.VarChar, 500); StringColB.Value = dr["StringColB"].ToString(); cmd.Parameters.Add(StringColB); SqlParameter NumberCol1= new SqlParameter("@NumberCol1", SqlDbType.Decimal, 25); NumberCol1.Value = dr["NumberCol1"].ToString(); cmd.Parameters.Add(NumberCol1); SqlParameter NumberCol2= new SqlParameter("@NumberCol2", SqlDbType.Decimal, 25); NumberCol2.Value = dr["NumberCol2"].ToString(); cmd.Parameters.Add(NumberCol2); try { cnn.Open(); cmd.ExecuteNonQuery(); blnSuccess = true; } catch (Exception ex) { } finally { if (blnSuccess) { cmd.Dispose(); cnn.Close(); } } } //***************** } } } catch (Exception ex) { } finally { } }