如何将来自C#的两个SQL过程的结果附加到单个CSV文件中?

如何将来自C#的两个SQL过程的结果附加到单个CSV文件中?,c#,mysql,sql-server,csv,stored-procedures,C#,Mysql,Sql Server,Csv,Stored Procedures,我在SQL中有两个过程,它们的结果应该作为CSV文件从C#中转储。我能够得到第一个过程的结果,但是我不知道如何添加第二个过程的结果 程序1。GetCSVData 程序2。GetHeader 下面的C#代码成功地从过程1('GetCSVData')将数据获取到CSV中。 请帮助我将过程2(“GetHeader”)中的数据集成到“GetCSVData”中,并将其写入同一个CSV文件 我的C#代码: @哈维:对不起,我到现在还没看到你的帖子。谢谢你的密码。然而,在我看到你的之前,我一直在努力解决这个问

我在SQL中有两个过程,它们的结果应该作为CSV文件从C#中转储。我能够得到第一个过程的结果,但是我不知道如何添加第二个过程的结果

程序1。GetCSVData

程序2。GetHeader

下面的C#代码成功地从过程1('GetCSVData')将数据获取到CSV中。 请帮助我将过程2(“GetHeader”)中的数据集成到“GetCSVData”中,并将其写入同一个CSV文件

我的C#代码:

@哈维:对不起,我到现在还没看到你的帖子。谢谢你的密码。然而,在我看到你的之前,我一直在努力解决这个问题。你能看一下我的代码,看看我能不能让它工作?否则我就用你的密码。到目前为止,我的所有20列标题都显示在我的CSV中,显然每列中的数据不匹配

private string DataTableToCSVFile(DataTable dt, string SId, string TotalRow)
{       DataTable dtExcel = dt;
    StringBuilder sb = new StringBuilder();
    sb.Append("CSV Data");
    sb.Append("\n");
    foreach (DataColumn column in dtExcel.Columns)
    {
        sb.Append(column.ColumnName + ",");
   }
    sb.Append("\n");
    foreach (DataRow row in dtExcel.Rows)
    {
        for (int i = 0; i < dtExcel.Columns.Count; i++)
        {
sb.Append(row[i].ToString() + ",");
    }
        sb.Append("\n");
    }
return sb.ToString();


    }
私有字符串DataTableToCSVFile(DataTable dt、字符串SId、字符串TotalRow)
{DataTable dtExcel=dt;
StringBuilder sb=新的StringBuilder();
sb.附加(“CSV数据”);
某人附加(“\n”);
foreach(dtExcel.Columns中的DataColumn列)
{
sb.追加(column.ColumnName+“,”);
}
某人附加(“\n”);
foreach(dtExcel.Rows中的数据行)
{
对于(int i=0;i
您可以将数据表对象设置为全局对象,然后在两个函数中使用相同的对象

首先运行您想要的,并将列和记录插入id。然后,运行第二个,并相应地将列和记录插入id

您还可以为每个函数使用两个独立的
DataTable
对象,然后在收到这两个对象的结果后将它们合并

此外,确保在调用两个函数后,在末尾编写实际的CSV生成代码

更新:

以下是如何将数据表值写入CSV文件:

string csvPath = System.Web.Hosting.HostingEnvironment.MapPath("pathToCSV.csv");
StreamWriter sw = new StreamWriter(csvPath, false);
if (dtDataTablesList.Rows.Count > 0)
                        {
                            //First we will write the headers.
                            int iColCount = dtDataTablesList.Columns.Count;

                            for (int i = 0; i < iColCount; i++)
                            {
                                sw.Write(dtDataTablesList.Columns[i]);
                                if (i < iColCount - 1)
                                {
                                    sw.Write(",");
                                }
                            }
                            sw.Write(sw.NewLine);

                            // Now write all the rows.
                            foreach (DataRow dr in dtDataTablesList.Rows)
                            {
                                for (int i = 0; i < iColCount; i++)
                                {
                                    if (!Convert.IsDBNull(dr[i]))
                                    {
                                        sw.Write(dr[i].ToString());
                                    }
                                    if (i < iColCount - 1)
                                    {
                                        sw.Write(",");
                                    }
                                }
                                sw.Write(sw.NewLine);
                            }
                        }
string csvPath=System.Web.Hosting.HostingEnvironment.MapPath(“pathtosv.csv”);
StreamWriter sw=新的StreamWriter(csvPath,false);
如果(dtDataTablesList.Rows.Count>0)
{
//首先,我们将编写标题。
int iColCount=dtDataTablesList.Columns.Count;
对于(int i=0;i
现在在这里,因为您想要拆分一些列,然后先编写它们,然后再编写其他列,所以您必须在这里稍微修改一下
条件,我认为这对您来说应该没问题


希望这能让您了解如何进行此操作。

您可以将
DataTable
对象设置为全局对象,然后在两个函数中使用相同的对象

首先运行您想要的,并将列和记录插入id。然后,运行第二个,并相应地将列和记录插入id

您还可以为每个函数使用两个独立的
DataTable
对象,然后在收到这两个对象的结果后将它们合并

此外,确保在调用两个函数后,在末尾编写实际的CSV生成代码

更新:

以下是如何将数据表值写入CSV文件:

string csvPath = System.Web.Hosting.HostingEnvironment.MapPath("pathToCSV.csv");
StreamWriter sw = new StreamWriter(csvPath, false);
if (dtDataTablesList.Rows.Count > 0)
                        {
                            //First we will write the headers.
                            int iColCount = dtDataTablesList.Columns.Count;

                            for (int i = 0; i < iColCount; i++)
                            {
                                sw.Write(dtDataTablesList.Columns[i]);
                                if (i < iColCount - 1)
                                {
                                    sw.Write(",");
                                }
                            }
                            sw.Write(sw.NewLine);

                            // Now write all the rows.
                            foreach (DataRow dr in dtDataTablesList.Rows)
                            {
                                for (int i = 0; i < iColCount; i++)
                                {
                                    if (!Convert.IsDBNull(dr[i]))
                                    {
                                        sw.Write(dr[i].ToString());
                                    }
                                    if (i < iColCount - 1)
                                    {
                                        sw.Write(",");
                                    }
                                }
                                sw.Write(sw.NewLine);
                            }
                        }
string csvPath=System.Web.Hosting.HostingEnvironment.MapPath(“pathtosv.csv”);
StreamWriter sw=新的StreamWriter(csvPath,false);
如果(dtDataTablesList.Rows.Count>0)
{
//首先,我们将编写标题。
int iColCount=dtDataTablesList.Columns.Count;
对于(int i=0;i