【发布时间】:2017-02-12 05:40:24
【问题描述】:
我尝试将 MySQL 表导出到 .csv,但有些东西不起作用,我不知道它是什么。我首先尝试将日期保存到 DataTable 中,然后使用此函数将它们导出到 .csv:
public void CreateCSVFile(DataTable dtDataTablesList, string strFilePath)
{
// Create the CSV file to which grid data will be exported.
StreamWriter sw = new StreamWriter(strFilePath, false);
//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);
}
sw.Close();
}
问题是:它通过 sda.Fill(data) 停止:
- 连接 {MySql.Data.MySqlClient.MySqlConnection} MySql.Data.MySqlClient.MySqlConnection
- sSql {MySql.Data.MySqlClient.MySqlCommand} MySql.Data.MySqlClient.MySqlCommand
- sda {MySql.Data.MySqlClient.MySqlDataAdapter} MySql.Data.MySqlClient.MySqlDataAdapter
- 数据{} System.Data.DataTable
脚本:
MySqlConnection connection = CDBAccess.GetCon;
MySqlCommand sSql = new MySqlCommand("SELECT * from mytable;", connection);
MySqlDataAdapter sda = new MySqlDataAdapter();
sda.SelectCommand = sSql;
DataTable data = new DataTable();
sda.Fill(data);
String path = @"C:\Users\Public\Documents\MyDocument";
CreateCSVFile(data, path);
【问题讨论】:
-
请用您使用的语言标记。
-
我的第一个猜测是你的连接有问题。你能验证连接是否有效吗?
-
连接正常。我得到了另一个使用 exatley 相同脚本和连接详细信息的脚本。一切正常。
-
我无法理解的是,要么具有值“SELET * from mytable”,变量的值就是“{MySql.Data.MySqlClient.MySqlCommand}”。