【问题标题】:Importing CSV data in two SQL tables在两个 SQL 表中导入 CSV 数据
【发布时间】:2016-02-02 11:02:34
【问题描述】:

我有一个包含 10 列的 CSV 文件。我想使用 C# 在一个 SQL 表中保存 5 列,在第二个 SQL 表中保存接下来的 5 列

【问题讨论】:

  • 为什么不使用像question 这样的库,您的问题还需要更多信息,例如您使用的是什么数据库适配器?这与 asp.net 有什么关系?
  • 请通过此链接,这会将 Csv 数据更改为 .net Datatable 类codeproject.com/Articles/11698/…

标签: c# sql-server csv


【解决方案1】:

我认为最简单(也可能是最快的)方法是使用临时表。

假设以下 CSV 文件:

Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10
Row1Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9,Value10
Row2Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9,Value10
...

使用类似的东西(在您的 C# 中)将文件导入 de DB,您可以在其中影响文件路径:

    CREATE TABLE #temp( column1 varchar,
                        column2 varchar,
                        column3 varchar,
                        column4 varchar,
                        column5 varchar,
                        column6 varchar,
                        column7 varchar,
                        column8 varchar,
                        column9 varchar,
                        column10 varchar);

    BULK INSERT #temp1
       FROM 'C:\Test.csv'
       WITH (
             FIELDTERMINATOR =',',
             ROWTERMINATOR = '\ n',
             FIRSTROW = 2
          )

现在您可以使用 INSERT INTO SELECT 将列选择到您的其他表中:

    INSERT INTO table1
    (Id, Name, Title, Desription, Date)
    SELECT column1, column3, column5, column7, column10
    FROM #temp1;

    INSERT INTO table2
    (SupplierName, Country, Contact, Addres, City)
    SELECT column2, column4, column6, column8, column9
    FROM #temp1;

如果您愿意,现在可以 DROP 或 EMPTY #temp1 表。

【讨论】:

    猜你喜欢
    • 2019-01-28
    • 2013-03-06
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多