繁体   English   中英

通过服务器从文件夹自动将新的/传入的.csv文件导入SQL Server数据库

[英]Automatically imports new/incoming .csv files from a folder through a server into SQL Server database

我需要使用执行上述功能的C#创建一个控制台应用程序。 我们有一台服务器,其中有一个.csv文件所在的文件夹。 控制台应用程序必须能够解析新.csv文件的内容,然后将其中包含的数据存储到SQL Server数据库中。

到目前为止,我的代码:

static void Main(string[] args)
{
    string csvPath = @"C:\\users\blahblah\file.csv";

    DataTable dt = new DataTable();

    dt.Columns.AddRange(new DataColumn[3] {
            new DataColumn("Id", typeof(int)),
            new DataColumn("First_Name", typeof(string)),
            new DataColumn("Last_Name",typeof(string)) });

    string csvData = File.ReadAllText(csvPath);

    foreach (string row in csvData.Split('\n'))
    {
        if (!string.IsNullOrEmpty(row))
        {
            dt.Rows.Add();
            int i = 0;

            foreach (string cell in row.Split(','))
            {
                dt.Rows[dt.Rows.Count - 1][i] = cell;
                i++;
            }
        }
    }

    string consString = @"Data Source=blah blah";

    using (SqlConnection con = new SqlConnection(consString))
    {
        using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
        {
            //Set the database table name
            sqlBulkCopy.DestinationTableName = "dbo.Sample";
            con.Open();

            sqlBulkCopy.WriteToServer(dt);
            con.Close();
        }
    }
}

注意:

  • 我们的服务器有一个IP地址,我可以连接到该IP地址,然后指定文件的文件夹位置。
  • 我上面的代码仅收集一个特定的.csv文件。
  • 控制台应用程序应始终运行。

我不好解释,希望您能理解。 我将不胜感激。

控制台应用程序应始终运行。

然后,您最好将此任务实现为服务(Windows服务,WCF服务等)。

我上面的代码仅收集一个特定的.csv文件。

只要文件存在,更新等,请使用FileSystemWatcher接收事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM