استخراج داده های GridView به فایل متنی در Asp.Net

شنبه 2 اسفند 1393

در این مقاله میخواهیم داده هایی که در گرید ویو را مشاهده میکنیم خروجی به صورت فایل متنی بگیریم

استخراج داده های GridView به فایل متنی در Asp.Net

ابتدا یک جدول با فیلد های زیر در نظر بگیرید:

اسکریپت جدول بالا به صورت زیر می باشد:

CREATE TABLE [dbo].[Employee](  
    [Emp_ID] [int] IDENTITY(1,1) NOT NULL,  
    [Name] [varchar](50) NULL,  
    [Designation] [varchar](50) NULL,  
    [City] [varchar](50) NULL,  
    [State] [varchar](50) NULL,  
    [Country] [varchar](50) NULL,  
 CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED   
(  
    [Emp_ID] ASC  
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]  
) ON [PRIMARY]

سپس مقداری اطلاعات در جدول خود درج میکنیم:

سپس در صفحه Default.aspx یک گرید ویو اضافه کرده و ستون های آنرا تنظیم میکنیم:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title>EXPORT Grid View To a Text File in ASP.NET C#</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <table style="border: solid 15px blue; width: 100%; vertical-align: central;">  
            <tr>  
                <td style="padding-left: 50px; padding-top: 20px; padding-bottom: 20px; background-color: skyblue;  
                    font-size: 20pt; color: orangered;">  
                    EXPORT Grid View To a Text File in ASP.NET C#  
                </td>  
            </tr>  
            <tr>  
                <td style="text-align: left; padding-left: 50px; border: solid 1px red;">  
                    <asp:GridView ID="GridViewEmployee" runat="server" AutoGenerateColumns="False" Width="90%"  
                        BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"  
                        CellPadding="4" GridLines="Both">  
                        <Columns>  
                            <asp:BoundField DataField="Name" HeaderText="Employee Name" />  
                            <asp:BoundField DataField="Designation" HeaderText="Designation" />  
                            <asp:BoundField DataField="City" HeaderText="City" />  
                            <asp:BoundField DataField="State" HeaderText="State" />  
                            <asp:BoundField DataField="Country" HeaderText="Country" />  
                        </Columns>  
                        <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />  
                        <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />  
                        <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />  
                        <RowStyle BackColor="White" ForeColor="#003399" />  
                        <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />  
                    </asp:GridView>  
                </td>  
            </tr>  
            <tr>  
                <td align="right">  
                    <asp:Button ID="btnExport" Text="Export Grid View" OnClick="btnExport_Click" runat="server" />  
                </td>  
            </tr>  
        </table>  
    </div>  
    </form>  
</body>  
</html> 

حال در صفحه Default.aspx.cs در رویداد صفحه یک تابع برای متصل کردن گرید ویو و پرکردن آن از داده های درون پایگاه داده فراخوانی میکنیم:

 protected void Page_Load(object sender, EventArgs e)  
    {  
        if (!Page.IsPostBack)  
            this.BindGrid();  
    }  

در تابع یک اتصال به پایگاه داده زده میشود و تمامی داده های درون جدول Employee را فراخوانی کرده ودرون DataSource گرید ریخته میشود:

private void BindGrid()  
    {  
        SqlConnection con = new SqlConnection();  
        ds = new DataSet();  
        con.ConnectionString = @"Data Source=INDIA\MSSQLServer2k8; Initial Catalog=EmployeeManagement; Uid=sa; pwd=india;";  
        SqlCommand cmd = new SqlCommand("SELECT * FROM EMPLOYEE", con);  
  
        da = new SqlDataAdapter(cmd);  
        da.Fill(ds);  
        con.Open();  
        cmd.ExecuteNonQuery();  
        con.Close();  
  
        if (ds.Tables[0].Rows.Count > 0)  
        {  
            GridViewEmployee.DataSource = ds.Tables[0];  
            GridViewEmployee.DataBind();  
        }  
    }  
  

حال در رویداد کلیک دکمه Export Grid View کد زیر را برای تبدیل داده های گرید ویو که از پایگاه داده فراخوانی شده اند به فایل متنی بنویسید:

 protected void btnExport_Click(object sender, EventArgs e)  
    {  
        string txtFile = string.Empty;  
  
        //Adding Column Name In Text File.  
        foreach (TableCell cell in GridViewEmployee.HeaderRow.Cells)  
        {              
            txtFile += cell.Text + "\t\t";  
        }  
          
        txtFile += "\r\n";  
  
        //Adding Data Column Values in Text File  
        foreach (GridViewRow row in GridViewEmployee.Rows)  
        {  
            foreach (TableCell cell in row.Cells)  
            {                  
                txtFile += cell.Text + "\t\t";  
            }               
            txtFile += "\r\n";  
        }  
           
        Response.Clear();  
        Response.Buffer = true;  
        Response.AddHeader("content-disposition", "attachment;filename=EmployeeData.txtFile");  
        Response.Charset = "";  
        Response.ContentType = "application/text";  
        Response.Output.Write(txtFile);  
        Response.Flush();  
        Response.End();  
    }  

 

کد کامل صفحه به شکل زیر می باشد:

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Web;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
    using System.Data;  
    using System.Data.SqlClient;  
      
    public partial class _Default : System.Web.UI.Page  
    {  
        SqlDataAdapter da;  
        DataSet ds = new DataSet();  
        DataTable dt = new DataTable();  
      
        protected void Page_Load(object sender, EventArgs e)  
        {  
            if (!Page.IsPostBack)  
                this.BindGrid();  
        }  
      
        private void BindGrid()  
        {  
            SqlConnection con = new SqlConnection();  
            ds = new DataSet();  
            con.ConnectionString = @"Data Source=INDIA\MSSQLServer2k8; Initial Catalog=EmployeeManagement; Uid=sa; pwd=india;";  
            SqlCommand cmd = new SqlCommand("SELECT * FROM EMPLOYEE", con);  
      
            da = new SqlDataAdapter(cmd);  
            da.Fill(ds);  
            con.Open();  
            cmd.ExecuteNonQuery();  
            con.Close();  
      
            if (ds.Tables[0].Rows.Count > 0)  
            {  
                GridViewEmployee.DataSource = ds.Tables[0];  
                GridViewEmployee.DataBind();  
            }  
        }  
      
        protected void btnExport_Click(object sender, EventArgs e)  
        {  
            string txtFile = string.Empty;  
      
            //Adding Column Name In Text File.  
            foreach (TableCell cell in GridViewEmployee.HeaderRow.Cells)  
            {              
                txtFile += cell.Text + "\t\t";  
            }  
              
            txtFile += "\r\n";  
      
            //Adding Data Column Values in Text File  
            foreach (GridViewRow row in GridViewEmployee.Rows)  
            {  
                foreach (TableCell cell in row.Cells)  
                {                  
                    txtFile += cell.Text + "\t\t";  
                }               
                txtFile += "\r\n";  
            }  
               
            Response.Clear();  
            Response.Buffer = true;  
            Response.AddHeader("content-disposition", "attachment;filename=EmployeeData.txtFile");  
            Response.Charset = "";  
            Response.ContentType = "application/text";  
            Response.Output.Write(txtFile);  
            Response.Flush();  
            Response.End();  
        }  
    }  

حالا میتونید برنامه خود را اجرا کنید:

 

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید