Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';s更改C中的“我的导出”按钮(btnExport)#_C#_Html_Csv_Datatable_Export - Fatal编程技术网

C# 什么';s更改C中的“我的导出”按钮(btnExport)#

C# 什么';s更改C中的“我的导出”按钮(btnExport)#,c#,html,csv,datatable,export,C#,Html,Csv,Datatable,Export,下面是我的代码,用于一个简单的数据表导出到CSV文件程序。我的程序实际上正在运行一个网站来存储数据库,并使用“导出”按钮将数据库转换为.csv文件 using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Text; using System.Web; using S

下面是我的代码,用于一个简单的数据表导出到CSV文件程序。我的程序实际上正在运行一个网站来存储数据库,并使用“导出”按钮将数据库转换为
.csv
文件

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Contact : System.Web.UI.Page
{

    SqlConnection sqlCon = new SqlConnection(@"Data Source= DESKTOP-25V3I8O;Initial Catalog=ASPCRUD;Integrated Security=true");
    DataTable dtbl = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            btnDelete.Enabled = false;
            FillGridView();
        }
    }

    protected void btnClear_Click(object sender, EventArgs e)
    {
        Clear();
    }

    public void Clear()
    {
        hfContactID.Value = "";

        txtName.Text = txtMobile.Text = txtAddress.Text = txtPostcode.Text = "";
        lblSuccessMessage.Text = lblErrorMessage.Text = "";
        btnSave.Text = "Save";
        btnDelete.Enabled = false;
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();
        SqlCommand sqlCmd = new SqlCommand("ContactCreateOrUpdate", sqlCon);
        sqlCmd.CommandType = CommandType.StoredProcedure;
        sqlCmd.Parameters.AddWithValue("@ContactID",(hfContactID.Value==""?0:Convert.ToInt32(hfContactID.Value)));
        sqlCmd.Parameters.AddWithValue("@Name", txtName.Text.Trim());
        sqlCmd.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
        sqlCmd.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
        sqlCmd.Parameters.AddWithValue("@Postcode", txtPostcode.Text.Trim());
        sqlCmd.ExecuteNonQuery();
        sqlCon.Close();
        string ContactID = hfContactID.Value;
        Clear();
        if (ContactID=="")
            lblSuccessMessage.Text = "Saved Successfully";
        else
            lblSuccessMessage.Text = "Updated Successfully";

        FillGridView();
    }

    void FillGridView()
    {
        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();
        SqlDataAdapter sqlData = new SqlDataAdapter("ContactViewAll", sqlCon);
        sqlData.SelectCommand.CommandType = CommandType.StoredProcedure;    
        sqlData.Fill(dtbl);
        sqlCon.Close();
        gvContact.DataSource = dtbl;
        gvContact.DataBind();
    }

    protected void lnk_OnClick(object sender, EventArgs e)
    {
        int ContactID = Convert.ToInt32((sender as LinkButton).CommandArgument);
        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();
        SqlDataAdapter sqlData = new SqlDataAdapter("ContactViewByID", sqlCon);
        sqlData.SelectCommand.CommandType = CommandType.StoredProcedure;
        sqlData.SelectCommand.Parameters.AddWithValue("@ContactID", ContactID);
        sqlData.Fill(dtbl);
        sqlCon.Close();
        hfContactID.Value = ContactID.ToString();
        txtName.Text = dtbl.Rows[0]["Name"].ToString();
        txtMobile.Text = dtbl.Rows[0]["Mobile"].ToString();
        txtAddress.Text = dtbl.Rows[0]["Address"].ToString();
        txtPostcode.Text = dtbl.Rows[0]["Postcode"].ToString();
        btnSave.Text = "Update";
        btnDelete.Enabled = true;
    }


    protected void btnDelete_Click(object sender, EventArgs e)
    {
        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();
        SqlCommand sqlCmd = new SqlCommand("ContactDeleteByID", sqlCon);
        sqlCmd.CommandType = CommandType.StoredProcedure;
        sqlCmd.Parameters.AddWithValue("ContactID", Convert.ToInt32(hfContactID.Value));
        sqlCmd.ExecuteNonQuery();
        sqlCon.Close();
        Clear();
        FillGridView();
        lblSuccessMessage.Text = "Deleted Successfully";
    }

    protected void ExportDataTableToCSV()
    {
        Response.Clear();
        Response.ContentType = "text/csv";
        Response.AddHeader("content-disposition", "attachment;filename=UserDetails.csv");

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < dtbl.Columns.Count; i++)
        {
            sb.Append(dtbl.Columns[i].ColumnName + ',');
        }
        sb.Append(Environment.NewLine);

        for (int j = 0; j < dtbl.Rows.Count; j++)
        {
            for (int k = 0; k < dtbl.Columns.Count; k++)
            {
                sb.Append(dtbl.Rows[j][k].ToString() + ',');
            }
            sb.Append(Environment.NewLine);
        }
        Response.Write(sb);
        Response.Flush();
        Response.End();
    }


    protected void btnExport_Click(object sender, EventArgs e)
    {
        ExportDataTableToCSV();
    }
}
使用系统;
使用System.Collections.Generic;
使用系统数据;
使用System.Data.SqlClient;
使用System.IO;
使用System.Linq;
使用系统文本;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
公共部分类联系人:System.Web.UI.Page
{
SqlConnection sqlCon=newsqlconnection(@“数据源=DESKTOP-25V3I8O;初始目录=ASPCRUD;集成安全性=true”);
DataTable dtbl=新DataTable();
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
btnDelete.Enabled=false;
FillGridView();
}
}
受保护的无效btnClear\u单击(对象发送方,事件参数e)
{
清除();
}
公共空间清除()
{
hfContactID.Value=“”;
txtName.Text=txtMobile.Text=txtdaddress.Text=txtPostcode.Text=”“;
lblSuccessMessage.Text=lblErrorMessage.Text=“”;
btnSave.Text=“保存”;
btnDelete.Enabled=false;
}
受保护的无效btnSave\u单击(对象发送方,事件参数e)
{
if(sqlCon.State==ConnectionState.Closed)
sqlCon.Open();
SqlCommand sqlCmd=新的SqlCommand(“ContactCreateOrUpdate”,sqlCon);
sqlCmd.CommandType=CommandType.StoredProcess;
sqlCmd.Parameters.AddWithValue(“@ContactID”,hfContactID.Value==”?0:Convert.ToInt32(hfContactID.Value));
sqlCmd.Parameters.AddWithValue(“@Name”,txtName.Text.Trim());
sqlCmd.Parameters.AddWithValue(“@Mobile”,txtMobile.Text.Trim());
sqlCmd.Parameters.AddWithValue(“@Address”,txtAddress.Text.Trim());
sqlCmd.Parameters.AddWithValue(“@Postcode”,txtPostcode.Text.Trim());
sqlCmd.ExecuteNonQuery();
sqlCon.Close();
字符串ContactID=hfContactID.值;
清除();
如果(ContactID==“”)
lblSuccessMessage.Text=“保存成功”;
其他的
lblSuccessMessage.Text=“更新成功”;
FillGridView();
}
void FillGridView()
{
if(sqlCon.State==ConnectionState.Closed)
sqlCon.Open();
SqlDataAdapter sqlData=新的SqlDataAdapter(“ContactViewAll”,sqlCon);
sqlData.SelectCommand.CommandType=CommandType.StoredProcess;
sqlData.Fill(dtbl);
sqlCon.Close();
gvContact.DataSource=dtbl;
gvContact.DataBind();
}
受保护的void lnk_OnClick(对象发送方,事件参数e)
{
int ContactID=Convert.ToInt32((发送者作为链接按钮).CommandArgument);
if(sqlCon.State==ConnectionState.Closed)
sqlCon.Open();
SqlDataAdapter sqlData=新的SqlDataAdapter(“ContactViewByID”,sqlCon);
sqlData.SelectCommand.CommandType=CommandType.StoredProcess;
sqlData.SelectCommand.Parameters.AddWithValue(“@ContactID”,ContactID);
sqlData.Fill(dtbl);
sqlCon.Close();
hfContactID.Value=ContactID.ToString();
txtName.Text=dtbl.Rows[0][“Name”].ToString();
txtMobile.Text=dtbl.Rows[0][“Mobile”].ToString();
txtAddress.Text=dtbl.Rows[0][“地址”].ToString();
txtPostcode.Text=dtbl.Rows[0][“Postcode”].ToString();
btnSave.Text=“更新”;
btnDelete.Enabled=true;
}
受保护的无效BTN删除\单击(对象发送者,事件参数e)
{
if(sqlCon.State==ConnectionState.Closed)
sqlCon.Open();
SqlCommand sqlCmd=新的SqlCommand(“ContactDeleteByID”,sqlCon);
sqlCmd.CommandType=CommandType.StoredProcess;
sqlCmd.Parameters.AddWithValue(“ContactID”,Convert.ToInt32(hfContactID.Value));
sqlCmd.ExecuteNonQuery();
sqlCon.Close();
清除();
FillGridView();
lblSuccessMessage.Text=“已成功删除”;
}
受保护的void ExportDataTableToCSV()
{
Response.Clear();
Response.ContentType=“text/csv”;
AddHeader(“内容处置”、“附件;文件名=UserDetails.csv”);
StringBuilder sb=新的StringBuilder();
for(int i=0;i

我的程序还有一个专为数据输入页面设计的页面。它包含
姓名
地址
手机
,以及
邮政编码
。它有一个由系统自动生成的用户帐号。

当您单击“导出”按钮时,会发生回发,您会丢失数据表的内容,因此只需尝试删除:

if (!IsPostBack)
因此,它将是:

 protected void Page_Load(object sender, EventArgs e)
{
        btnDelete.Enabled = false;
        FillGridView();

}
下面是一个基于您的代码的工作示例:

 DataTable table = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {

            table.Columns.Add("Dosage", typeof(int));
            table.Columns.Add("Drug", typeof(string));
            table.Columns.Add("Patient", typeof(string));
            table.Columns.Add("Date", typeof(DateTime));

            // Here we add five DataRows.
            table.Rows.Add(25, "Indocin", "David", DateTime.Now);
            table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
            table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
            table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
            table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

    }



    protected void ExportDataTableToCSV()
    {
        Response.Clear();
        Response.ContentType = "text/csv";
        Response.AddHeader("content-disposition", "attachment;filename=UserDetails.csv");

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < table.Columns.Count; i++)
        {
            sb.Append(table.Columns[i].ColumnName + ',');
        }
        sb.Append(Environment.NewLine);

        for (int j = 0; j < table.Rows.Count; j++)
        {
            for (int k = 0; k < table.Columns.Count; k++)
            {
                sb.Append(table.Rows[j][k].ToString() + ',');
            }
            sb.Append(Environment.NewLine);
        }
        Response.Write(sb);
        Response.Flush();
        Response.End();
    }


    protected void btnExport_Click(object sender, EventArgs e)
    {
        ExportDataTableToCSV();
    }
DataTable=newdatatable();
受保护的无效页面加载(对象发送方、事件参数e)
{
表.列.添加(“剂量”,类型(int));
表.列.添加(“药物”,类型(字符串));
表.列.添加(“患者”,类型(字符串));
表.列.添加(“日期”,类型(日期时间));
//这里我们添加五个数据行。
表.Rows.Add(25,“Indocin”,“David”,DateTime.Now);
添加(50,“Enebrel”,“Sam”,DateTime.Now);
表.Rows.Add(10,“Hydrazine”,“Christoff”,DateTime.Now);
表.行.添加(21,“