Я создаю приложение, которое передает файл .db с удаленного сервера на локальный сервер с использованием SFTP. Эти файлы должны быть преобразованы в формат CSV для последующей визуализации данных.
Каждый .db имеет свое имя, я хочу иметь возможность прочитать каждый файл и преобразовать его в формат CSV, используя C#. Я пробовал другую реализацию, которая конвертировала в CSV, но все файлы имеют одинаковые данные.
Ниже я делаю следующее:
public DataTable ConverttoDatatable(string path, string tablename)
{
SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=" + path);
m_dbConnection.Open();
string sql = string.Format("SELECT * FROM DADLoggerTable");
SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql, m_dbConnection);
DataSet set = new DataSet();
adapter.Fill(set);
DataTable table = set.Tables[0];
return table;
}
public void SaveCsv(DataTable dt, string filePath, string tablename)
{
FileStream fs = null;
StreamWriter sw = null;
try
{
fs = new FileStream(filePath + "\\" + tablename + ".csv", FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs, Encoding.Default);
var data = string.Empty;
for (var i = 0; i < dt.Columns.Count; i++)
{
data += dt.Columns[i].ColumnName;
if (i < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
for (var i = 0; i < dt.Rows.Count; i++)
{
data = string.Empty;
for (var j = 0; j < dt.Columns.Count; j++)
{
data += dt.Rows[i][j].ToString();
if (j < dt.Columns.Count - 1)
{
data += ",";
}
}
sw.WriteLine(data);
}
}
catch (IOException ex)
{
throw new IOException(ex.Message, ex);
}
}
Это два метода для преобразования данных, и вот как я реализовал в C#.
foreach (var item_db in files_path)
{
var result = item_db.Substring(item_db.Length - 3);
for (var i = 1; i < files_path.Count() + 1; i++)
{
if (result == ".db")
{
tablename = string.Format("DADLoggerTable{0}", i);
DataTable dt = ConverttoDatatable(item_db, tablename);
SaveCsv(dt, subFolderCSV, tablename);
}
}
}
Это l oop через файлы db и он конвертирует файл, заканчивающийся на .db Al файл имеет те же данные, означает ли это, что он пишет одни и те же данные для всех файлов или что-то не так, что я не знаю.
Заранее спасибо за любые предложения.