c#中将数据库中的文件导出为csv、xml文件的demo

发布于:2024-07-12 ⋅ 阅读:(152) ⋅ 点赞:(0)

1. 导出为CSV文件

 /// <summary>
 /// 将mysql数据保存为csv文件
 /// </summary>
 /// <param name="connectionString">数据库连接字符串</param>
 /// <param name="query">sql语句</param>
 /// <param name="filePath">文件保存地址</param>
 /// 
 public static void ExportToCsv(string connectionString, string query, string filePath)
 {
     using (MySqlConnection conn = new MySqlConnection(connectionString))
     {
           using (MySqlCommand cmd = new MySqlCommand(query, conn))
           {
                 conn.Open();

                 using (MySqlDataReader reader = cmd.ExecuteReader())
                 {
                        using (StreamWriter writer = new StreamWriter(filePath, false, Encoding.UTF8))
                        {
                            // 写入标题  
                            for (int i = 0; i < reader.FieldCount; i++)
                            {
                                writer.Write(reader.GetName(i));
                                if (i < reader.FieldCount - 1)
                                    writer.Write(",");
                            }
                            writer.WriteLine();

                            // 写入数据  
                            while (reader.Read())
                            {
                                for (int i = 0; i < reader.FieldCount; i++)
                                {
                                    if (!reader.IsDBNull(i))
                                        writer.Write(reader.GetValue(i).ToString().Replace(",", ";")); // 避免逗号冲突  
                                    else
                                        writer.Write("");

                                    if (i < reader.FieldCount - 1)
                                        writer.Write(",");
                                }
                                writer.WriteLine();
                            }
                        }
                    }
                }
            }
        }

2、导出为xml文件

    /// <summary>
    /// 将mysql中的数据导出为xml文件
    /// </summary>
    /// <param name="connectionString"> 连接字符串</param>
    /// <param name="query">sql语句</param>
    /// <param name="filePath">保存csv文件的路径</param>
    public static void ExportToXml(string connectionString, string query, string filePath)
    {
        DataSet dataSet = new DataSet();

        using (MySqlConnection conn = new MySqlConnection(connectionString))
        {
            using (MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn))
            {
                conn.Open();
                adapter.Fill(dataSet);

                // 保存到文件  
                dataSet.WriteXml(filePath);
            }
        }
    }

网站公告

今日签到

点亮在社区的每一天
去签到