Здравствуйте
Вопрос в следующем
у меня есть windows forms приложение, цель которого взять все файлы .dbf из папки и её подпапок и мигрировать их в оракл
и если для одного файла я смог это сделать (
https://github.com/CrimsonFox-hub/dbf-to-oracle), то переработать так, чтобы программа брала в цикле все файлы и проделывала с ними текущую операцию не выходит
можете посоветовать как перенести выделенные фрагменты в start_button чтобы программа делала запланированное?
private void DBFLoad_Click(object sender, RoutedEventArgs e)
{
FBD = new FolderBrowserDialog(); // создаем экземпляр FolderBrowserDialog
if (FBD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
dbfPath = FBD.SelectedPath;
_DBF.Text = dbfPath; // Заполняем имя файла документа в TextBox
// openFile и saveFile надо переделать так, чтобы они не открывали окно выбора, а брали/создавали файлы в фоне
openFile = new Microsoft.Win32.OpenFileDialog(); // создаем экземпляр OpenFileDialog
openFile.Filter = "dbf файлы (*.dbf)";
saveFile = new Microsoft.Win32.SaveFileDialog(); // создаем экземпляр SaveFileDialog
}
//перенос отсюда
if (openFile.ShowDialog() == true)
{
dbfDirectory = dbfPath; // Добавляем путь к файлу в переменую
dbfName = openFile.SafeFileName; // Добавляем имя файла в переменную
}
openFile.Reset();
_namefile = dbfName.Remove(dbfName.IndexOf('.')); // получаем имя файла без расширения
saveFile.FileName = _namefile + "_asd_4321.sql"; // Имя сохраняемого файла = Имя DBF файла + расширение *.SQL
if (saveFile.ShowDialog() == true)
{
sqlDirectory = dbfPath; // путь к файлу
sqlName = "\\" + saveFile.SafeFileName; // имя файла
}
saveFile.Reset();
// и до сюда
if (dbfPath != null)
{
_start.IsEnabled = true;
}
}
и ещё такой вопрос
struct Type_
{
public const string int_ = "NUMBER";
//добавить вариативность varchar(n)
public const string varchar_ = "VARCHAR2(255)";
public const string Datetime_ = "DATE";
}
private StringBuilder str_; // StringBuilder для работы с строками
private string newText_ = string.Empty; // Для создания нового текста
/// <summary>
/// Преобрузет типы DBF в типы SQL
/// </summary>
/// <param name="type">DBF тип в формате string</param>
/// <returns></returns>
public string ConvertType(string type)
{
switch (type)
{
case "Double":
return Type_.int_; // если пришел Double отправляем int
case "String":
return Type_.varchar_; // если пришел String отправляем varchar(255)
case "DateTime":
return Type_.Datetime_; // если пришел DateTime, отправляем datetime
}
return type;
}
как можно переделать этот код, чтобы тот же варчар выбирал длинну в процессе, а не брал предопределенную
Заранее спасибо