Quantcast
Channel: Oracle, MySQL, Sybase, Informix and other databases
Viewing all articles
Browse latest Browse all 1350

Unable to insert values into .XLSX using OleDbConnection

$
0
0

As part of our application we are inserting data from DATASET into excel template (.XLSX) using OleDBConnection. It is working fine if total number of rows are less 8900. But in our case total number of rows are 47000. I am not getting any error message and I can see that looping is happening 47000 and able to print all values. The same code working in our Development and Test servers. It's not working in production (Load balanced web servers). Please see the code used for it

public int ExporttoExcelN(string sPath, DataSet dsRpt)
    {
        int result = 0;
        string sFirstColumnName = string.Empty;
        System.Data.OleDb.OleDbConnection con = null;
        System.Data.OleDb.OleDbCommand cmd = null;
        System.Text.StringBuilder sqlColumns = new System.Text.StringBuilder();
        try
        {
            cmd = new System.Data.OleDb.OleDbCommand();

            con = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sPath + ";Extended Properties=Excel 12.0 Xml;");

            if (con.State == ConnectionState.Closed)
	    {
                con.Open();
	    }
            cmd.Connection = con;

            for (int i = 0; i < dsRpt.Tables[0].Columns.Count; i++)
            {
                //insert
                sqlColumns.Append("[");
                sqlColumns.Append(dsRpt.Tables[0].Columns[i].ColumnName);
                sqlColumns.Append("]");
                sqlColumns.Append(",");
            }
            sqlColumns.Remove(sqlColumns.Length - 1, 1); //remove extra comma
            sqlColumns.Append(") ");

            //insert values creation
            for (int j = 0; j < dsRpt.Tables[0].Rows.Count; j++)
            {
                System.Text.StringBuilder sqlRows = new System.Text.StringBuilder();
                sqlRows.Append("values (");
                for (int i = 0; i < dsRpt.Tables[0].Columns.Count; i++)
                {
                    if (!string.IsNullOrEmpty(dsRpt.Tables[0].Rows[j][i].ToString()))
                    {
                        sqlRows.Append("'");
                        sqlRows.Append(dsRpt.Tables[0].Rows[j][i].ToString().Replace("'", "''"));
                        sqlRows.Append("'");
                        sqlRows.Append(",");
                    }
                    else
                    {
                        sqlRows.Append("null");
                        sqlRows.Append(",");
                    }
                }
                sqlRows.Remove(sqlRows.Length - 1, 1); //remove last comma
                sqlRows.Append(")");
                cmd.CommandText = sqlColumns.ToString() + sqlRows.ToString();
                result += cmd.ExecuteNonQuery();
            }
        }
        catch
        {
        }
        finally
        {
            cmd.Dispose();
            if (con.State == ConnectionState.Open)
	    {
                con.Close();
	    }
        }
        return result;
    }


Viewing all articles
Browse latest Browse all 1350

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>