Monday, 8 August 2016

Generate csv file from datatable in c#

  protected void Button1_Click(object sender, EventArgs e)
    {
        //string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        string connetionString = null;
        //SqlConnection con;
        connetionString = "Data Source=.;Initial Catalog=Test;User ID=sa;Password=1234";
        //con = new SqlConnection(connetionString);
        using (SqlConnection con = new SqlConnection(connetionString))
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM tblcity"))
            {
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Connection = con; sda.SelectCommand = cmd; using (DataTable dt = new DataTable())
                    {
                        sda.Fill(dt);
                        //Build the CSV file data as a Comma separated string.
                        string csv = string.Empty;
                        foreach (DataColumn column in dt.Columns)
                        {
                            //Add the Header row for CSV file.
                            csv += column.ColumnName + ',';
                        }
                        //Add new line.
                        csv += "\r\n";
                        foreach (DataRow row in dt.Rows)
                        {
                            foreach (DataColumn column in dt.Columns)
                            {
                                //Add the Data rows.
                                csv += row[column.ColumnName].ToString().Replace(",", ";") + ',';
                            }
                            //Add new line.
                            csv += "\r\n";
                        }
                        //Download the CSV file.
                        Response.Clear();
                        Response.Buffer = true;
                        Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv");
                        Response.Charset = "";
                        Response.ContentType = "application/text";
                        Response.Output.Write(csv); Response.Flush();
                        Response.End();
                    }
                }
            }
        }
    }

//////////////////////////////////////////////////Above code with help of Linq//////////////////////////////////////////


 string connetionString = null;
        SqlConnection con;
        connetionString = "Data Source=.;Initial Catalog=Test;User ID=sa;Password=1234";
        con = new SqlConnection(connetionString);
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter("select * from tblcity", con);
        da.Fill(dt);
        StringBuilder sb = new StringBuilder();
        IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
        sb.AppendLine(string.Join(",", columnNames));
        foreach (DataRow row in dt.Rows)
        {
            IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
            sb.AppendLine(string.Join(",", fields));
        }
       
        //Download the CSV file.
        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv");
        Response.Charset = "";
        Response.ContentType = "application/text";
        Response.Output.Write(sb); Response.Flush();
        Response.End();



No comments:

Post a Comment