2016-05-23 6 views
-1

Моя проблема решена. Я снял свой код по причинам неприкосновенностиЗагрузка нескольких файлов csv на SQL-сервер в C#

+0

К «отправь SQL Server» вы имеете в виду вы хотите скопировать физический файл на диске сервера SQL, читать данные из файла и вставить данные в таблицу, или ... какой код вы пробовали и что конкретно не работает? Я думаю, что если вы сломаете это на конкретные, ответные вопросы, вы, вероятно, также сможете легко найти ответы (как вставлять данные в базу данных sql, как перемещать файл и т. Д.), – DVK

ответ

1

Я не совсем уверен, что вы имеете в виду Я хочу, чтобы иметь возможность читать файлы в одном одновременно из трех разных папок, но здесь это решение, которое будет цикл через CSV файлы одной папки, дайте вам возможность читать каждый файл и делать то, что вам нужно сделать, а затем переместить файл в новую папку.

private void ProcessFilesCSVFiles(string copyPath, string destinationPath) 
{ 
    // first check if path exists 
    if (!Directory.Exists(copyPath)) 
     // doesn't exist then exit, can't copy from something that doesn't exist 
     return; 
    var copyPathDirectory = new DirectoryInfo(copyPath); 
    // using the SearchOption.AllDirectories will search sub directories 
    var copyPathCSVFiles = copyPathDirectory.GetFiles("*.csv", SearchOption.AllDirectories); 
    for(var i = 0; i < copyPathCSVFiles.Length; i++) 
    { 
     // get the file 
     var csvFile = copyPathCSVFiles[i]; 
     // read the csv file line by line 
     using (StreamReader sr = csvFile.OpenText()) 
     { 
      string line = ""; 
      while ((line = sr.ReadLine()) != null) 
      { 
       // use split to read the individual columns 
       // will fail if the text field has a comma in it 
       var split = line.Split(','); 
       Console.WriteLine(line); 
      } 
     } 
     // do other sql mojo here if needed 

     // move the files over to another place 
     var destinationFilePath = Path.Combine(destinationPath, csvFile.Name); 
     if (File.Exists(destinationFilePath)) 
     { 
      File.Delete(destinationFilePath); 
     } 
     csvFile.MoveTo(destinationFilePath); 
    } 
} 

Что можно было бы назвать, используя что-то вроде этого:

ProcessFilesCSVFiles(@"C:\data\copypath", @"C:\data\destinationpath"); 
0

Посмотрите на this related question.

Вы должны внести некоторые изменения, например, изменить расширение файла на ".csv" и изменить путь к файлу назначения.

foreach (var file in d.GetFiles("*.csv")) 
{ 
    //Load CSV into SQL using existing code 
    Directory.Move(file.FullName, filepath + "\\TextFiles\\" + file.Name); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^