实现Gradview绑定数据库数据并导出Excel的方法,可以分为以下几个步骤:
步骤一:创建ASP.NET Web应用程序
在Visual Studio中新建一个Web Application项目,选择ASP.NET Web应用程序模板,设置名称和位置,并点击创建按钮。
步骤二:创建数据库及表
- 在SQL Server中新建一个数据库,设置名称和位置,并点击创建按钮。
- 在数据库中新建一个数据表,设置名称和表结构,如下所示:
CREATE TABLE [dbo].[Student](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Gender] [nvarchar](10) NOT NULL,
[Age] [int] NOT NULL,
[Score] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)
);
步骤三:编写ASP.NET页面代码
- 在Default.aspx页面中,添加一个GridView控件和一个Button控件,代码如下所示:
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
<asp:Button ID="btnExport" runat="server" Text="导出Excel" OnClick="btnExport_Click" />
- 在Default.aspx.cs页面中,编写代码实现GridView绑定数据库数据和Excel导出功能,代码如下所示:
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridView();
}
}
private void BindGridView()
{
string connString = "Data Source=.;Initial Catalog=TestDB;Integrated Security=True";
string query = "SELECT * FROM Student";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "StudentData.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
/* 空实现,用于解决“控件必须放在具有 runat=server 的表单标记内”的异常 */
}
}
步骤四:测试应用程序
- 在Visual Studio中启动调试模式,或发布到IIS中后进行访问。
- 点击“导出Excel”按钮,测试Excel导出功能。
示例一:
以下示例演示如何在ASP.NET页面中使用GridView控件展示数据库中的数据。
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
private void BindGridView()
{
string connString = "Data Source=.;Initial Catalog=TestDB;Integrated Security=True";
string query = "SELECT * FROM Student";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
示例二:
以下示例演示如何在ASP.NET页面中使用Response对象将GridView数据导出为Excel文件。
<asp:Button ID="btnExport" runat="server" Text="导出Excel" OnClick="btnExport_Click" />
protected void btnExport_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "StudentData.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
/* 空实现,用于解决“控件必须放在具有 runat=server 的表单标记内”的异常 */
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net实现Gradview绑定数据库数据并导出Excel的方法 - Python技术站