从文本文件导入数据的更快方法

时间:2016-09-05 03:11:22

标签: c#

我必须将数据从文本文件导入到平面文件数据库。我确信有一种更快的方法将所有数据加载到数据库中,但我不知道如何。

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);
}

1 个答案:

答案 0 :(得分:0)

如果您是通过C#进行此操作,那么我建议使用SqlBulkCopy。我不久前向另一个问题提供了similar answer。请参阅该链接,了解我过去如何实施它的示例。

如果您想了解其他可用选项,那么MSDN在其数据加载指南中提供了相当多的选项列表; http://msdn.microsoft.com/en-us/library/dd425070(v=sql.100).aspx