2012-08-24 250 views
2

我真的不在我的聯盟,但我聽說它可以完成。如何將csv文件導入到ms sql數據庫中?

我有數以千計的被捕獲每隔一段時間不同的CSV文件的原始電話數據PBX電話服務器中存儲的日期的文件夾(8分鐘和2小時之間)。

我可以連接到服務器的唯一途徑是通過WinSCP賦予,它只是給我的文件結構(看起來像Filezilla的FTP)。

所以兩件事:

  1. 怎麼會有人去導入數以千計的文件到一個SQL Server數據庫(2008)?
  2. 某人如何設置定時事件以在創建新CSV文件時導入?

我只是需要一些方向。我甚至不知道從哪裏開始。

感謝您的幫助。

+0

不是一個壞問題,但它與Python沒有太大關係。此外,這似乎更適合[dba.stackexchange.com](http://dba.stackexchange.com/)。 –

+0

你是專門尋找python解決方案嗎? – Vikram

+0

@Vikram我並不是特別的,但我確實聽到有人使用Python腳本來做這件事。 –

回答

1

如果您有權限,你可以使用sqlcmd一個批處理文件做一個BULK INSERT。另外,您可以創建一個SSIS包。

更多信息herehere

1
using System; 
using System.Data; 
using Microsoft.VisualBasic.FileIO; 

namespace ReadDataFromCSVFile 
    { 
    static class Program 
     { 
     static void Main() 
     { 
      string [email protected]"C:\Users\Administrator\Desktop\test.csv"; 
      DataTable csvData = GetDataTabletFromCSVFile(csv_file_path); 
      Console.WriteLine("Rows count:" + csvData.Rows.Count);    
      Console.ReadLine(); 
     } 
    private static DataTable GetDataTabletFromCSVFile(string csv_file_path) 
     { 
      DataTable csvData = new DataTable(); 
      try 
      { 
       using(TextFieldParser csvReader = new TextFieldParser(csv_file_path)) 
       { 
        csvReader.SetDelimiters(new string[] { "," }); 
        csvReader.HasFieldsEnclosedInQuotes = true; 
        string[] colFields = csvReader.ReadFields(); 
        foreach (string column in colFields) 
        { 
         DataColumn datecolumn = new DataColumn(column); 
         datecolumn.AllowDBNull = true; 
         csvData.Columns.Add(datecolumn); 
        } 
        while (!csvReader.EndOfData) 
        { 
         string[] fieldData = csvReader.ReadFields(); 
         //Making empty value as null 
         for (int i = 0; i < fieldData.Length; i++) 
         { 
          if (fieldData[i] == "") 
          { 
           fieldData[i] = null; 
          } 
         } 
         csvData.Rows.Add(fieldData); 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
      } 
      return csvData; 
     } 
     } 
    } 
相關問題