在C#中怎样把DataSet中的数据生成CSV文件?
请大哥大姐们鼎立相助!!!

解决方案 »

  1.   

    /// <summary>
    /// 将DataSet导出成CSV格式
    /// </summary>
    /// <param name="ds">DataSet</param>
    /// <returns>CSV字符串数据</returns>
    public static string ExportCSV(DataSet ds)
    {
     string data = "";
     //data = ds.DataSetName + " ";
     
     foreach(DataTable tb in ds.Tables)
     {
      data += tb.TableName + " ";
     
      //写出列名
      foreach (DataColumn column in tb.Columns)
      {
       data += column.ColumnName + ",";
      }
      data += " ";
      
      //写出数据
      foreach (DataRow row in tb.Rows)
      {
       foreach (DataColumn column in tb.Columns)
       {
        data += row[column].ToString() + ",";
       }
       data += " ";
      }
      data += " ";
     }
     
     return data;
    }
      

  2.   

    SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); 
       SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn); 
       DataSet ds=new DataSet(); 
       da.Fill(ds,"table1"); 
       DataTable dt=ds.Tables["table1"]; 
       string name=System.Configuration.ConfigurationSettings.AppSettings["downloadurl"].ToString()+DateTime.Today.ToString("yyyyMMdd")+new Random(DateTime.Now.Millisecond).Next(10000).ToString()+".csv";//存放到web.config中downloadurl指定的路径,文件格式为当前日期+4位随机数 
       FileStream fs=new FileStream(name,FileMode.Create,FileAccess.Write); 
       StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding("gb2312")); 
       sw.WriteLine("自动编号,姓名,年龄"); 
       foreach(DataRow dr in dt.Rows) 
       { 
        sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]); 
       } 
       sw.Close();