2016-09-05 61 views
0

我必須將數據從文本文件導入到平面文件數據庫。我確信有一種更快的方式將所有數據加載到數據庫中,但我不知道如何。更快速的方法從文本文件導入數據

private void ImportButton_Click(object sender, EventArgs e) 
{ 
    string Path = string.Empty; 

    OpenFileDialog ofd = new OpenFileDialog(); 
    ofd.Filter = "Text File|*.txt"; 
    ofd.ShowDialog(); 

    if (ofd.FileName == string.Empty) return 

    Path = ofd.FileName; 

    string data; 
    using (var sr = new StreamReader(Path)) 
    { 
     data = sr.ReadToEnd(); 
    } 

    var items = data.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); 

    var count = 0; 
    foreach (var info in items.Select(ItemInfo.FromText).Where(info => info != null)) 
    { 
     count++; 
     info.Index = ++Envir.ItemIndex; 
     Envir.ItemInfoList.Add(info); 
    } 

    MessageBox.Show(count + " Items have been imported"); 
    UpdateInterface(true); 
} 
+0

看起來它會很快。你可以通過寫'var items = File.ReadAllLines(Path);'來使代碼變小。 – Enigmativity

+1

'Envir.ItemInfoList.Add(info);' - 這是你寫入數據庫的地方嗎? –

+3

你不說Envir.ItemInfoList是如何實現的。如果它是對像Entity Framework之類的同步調用,那麼可以改進這一步。數據庫是否支持批量插入?調查一下。 –

回答

相關問題