Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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# 从SqlDataSource/GridView生成CSV文件_C#_Asp.net_Gridview_Sqldatasource - Fatal编程技术网

C# 从SqlDataSource/GridView生成CSV文件

C# 从SqlDataSource/GridView生成CSV文件,c#,asp.net,gridview,sqldatasource,C#,Asp.net,Gridview,Sqldatasource,我需要能够在用户单击按钮时生成从SqlDataSource/GridView返回的结果的基本CSV文件,然后允许他们保存此文件 这简单吗 感谢您提供GridView,您可以使用: StreamWriter writer = new StreamWriter("file.csv"); // Write columns writer.Write(myGridView.Columns[0].HeaderText);

我需要能够在用户单击按钮时生成从SqlDataSource/GridView返回的结果的基本CSV文件,然后允许他们保存此文件

这简单吗


感谢您提供GridView,您可以使用:

            StreamWriter writer = new StreamWriter("file.csv");

            // Write columns
            writer.Write(myGridView.Columns[0].HeaderText);
            for (int i = 1; i < myGridView.Columns.Count; i++)
                writer.Write("," + myGridView.Columns[i].HeaderText);

            writer.Write("\n");

            // Write values
            for (int x = 0; x < myGridView.Rows.Count; x++)
            {
                writer.Write(myGridView.Rows[x].Cells[0].Text);
                for (int i = 1; i < myGridView.Rows[x].Cells.Count; i++)
                    writer.Write("," + myGridView.Rows[x].Cells[i].Text);

                writer.Write("\n");
            }

            writer.Close();
StreamWriter writer=newstreamwriter(“file.csv”);
//写专栏
writer.Write(myGridView.Columns[0].HeaderText);
对于(int i=1;i
对于GridView,您可以使用:

            StreamWriter writer = new StreamWriter("file.csv");

            // Write columns
            writer.Write(myGridView.Columns[0].HeaderText);
            for (int i = 1; i < myGridView.Columns.Count; i++)
                writer.Write("," + myGridView.Columns[i].HeaderText);

            writer.Write("\n");

            // Write values
            for (int x = 0; x < myGridView.Rows.Count; x++)
            {
                writer.Write(myGridView.Rows[x].Cells[0].Text);
                for (int i = 1; i < myGridView.Rows[x].Cells.Count; i++)
                    writer.Write("," + myGridView.Rows[x].Cells[i].Text);

                writer.Write("\n");
            }

            writer.Close();
StreamWriter writer=newstreamwriter(“file.csv”);
//写专栏
writer.Write(myGridView.Columns[0].HeaderText);
对于(int i=1;i
因为您使用的是SqlDataSource,所以您可以像这样从中获取数据表:

var dv = new DataView();
var dt = new DataTable();
dv = (DataView)mySQLDataSource.Select(DataSourceSelectArguments.Empty);
dt = dv.ToTable();
我写了一套,你应该可以很容易地使用

接下来的代码将非常简单:

var csv = dt.ToCSV();
下面是一个使用这种方法的完整示例

标记:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="SO.WebUI._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeId"
        DataSourceID="SqlDataSourceLocal">
        <Columns>
            <asp:BoundField DataField="EmployeeId" HeaderText="EmployeeId" InsertVisible="False"
                ReadOnly="True" SortExpression="EmployeeId" Visible="False" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
            <asp:BoundField DataField="Birthdate" HeaderText="Birthdate" SortExpression="Birthdate" />
        </Columns>
    </asp:GridView>

    <!-- This is the button to export CSV! -->
    <asp:Button ID="btnToCSV" runat="server" Text="Export to CSV" OnClick="GetCSV" />

    <asp:SqlDataSource ID="SqlDataSourceLocal" runat="server" 
    ConnectionString="<%$ ConnectionStrings:StackOverflowExamplesConnectionString %>"
        SelectCommand="SELECT * FROM [Employee]"></asp:SqlDataSource>
</asp:Content>

好了。这里唯一没有包括的是扩展方法源,但是因为我已经链接到它,所以将其放入静态类应该没有问题。

因为您使用的是SqlDataSource,所以您可以像这样从中获取数据表:

var dv = new DataView();
var dt = new DataTable();
dv = (DataView)mySQLDataSource.Select(DataSourceSelectArguments.Empty);
dt = dv.ToTable();
我写了一套,你应该可以很容易地使用

接下来的代码将非常简单:

var csv = dt.ToCSV();
下面是一个使用这种方法的完整示例

标记:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="SO.WebUI._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeId"
        DataSourceID="SqlDataSourceLocal">
        <Columns>
            <asp:BoundField DataField="EmployeeId" HeaderText="EmployeeId" InsertVisible="False"
                ReadOnly="True" SortExpression="EmployeeId" Visible="False" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
            <asp:BoundField DataField="Birthdate" HeaderText="Birthdate" SortExpression="Birthdate" />
        </Columns>
    </asp:GridView>

    <!-- This is the button to export CSV! -->
    <asp:Button ID="btnToCSV" runat="server" Text="Export to CSV" OnClick="GetCSV" />

    <asp:SqlDataSource ID="SqlDataSourceLocal" runat="server" 
    ConnectionString="<%$ ConnectionStrings:StackOverflowExamplesConnectionString %>"
        SelectCommand="SELECT * FROM [Employee]"></asp:SqlDataSource>
</asp:Content>

好了。这里唯一没有包括的是扩展方法源代码,但由于我已经链接到它,所以将其放入静态类应该没有问题。

私有void按钮13\u单击(对象发送者,事件参数)//导出到.csv { //OnExportGridToCSV()

StreamWriter writer=newstreamwriter(“C:\\scripts\\file.csv”);
//写专栏
writer.Write(dataGridView1.Columns[0].HeaderText);
对于(int i=1;i
私有无效按钮13\u单击(对象发送者,事件参数)//导出到.csv { //OnExportGridToCSV()

StreamWriter writer=newstreamwriter(“C:\\scripts\\file.csv”);
//写专栏
writer.Write(dataGridView1.Columns[0].HeaderText);
对于(int i=1;i
您是真的想要.csv,还是因为电子表格太复杂而满足于.csv?您真的想要.csv,还是因为电子表格太复杂而满足于.csv?