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);
}
}
}