【问题标题】:Tab-delimited flat file to SQL制表符分隔的平面文件到 SQL
【发布时间】:2012-07-16 14:06:45
【问题描述】:

我有一个制表符分隔的平面文件,我需要从中提取数据并更新我的 MS-SQL 数据库中的表。

有没有人详细说明我将如何做这件事?也许是某个网站或教程?

提前致谢。

更新:基本上亚马逊返回一个制表符分隔的平面文件,我需要从中提取数据,然后使用该数据更新我的数据库。我已经知道如何从 MS SQL 数据库中导出数据了 :)

【问题讨论】:

    标签: asp.net sql-server flat-file csv


    【解决方案1】:

    步骤如下:

    1- 右键单击​​您的数据库并选择任务/导出数据,

    2- 数据源:平面文件

    3- 分隔符:制表符

    向导中的下一步...

    【讨论】:

      【解决方案2】:

      如果您使用的是 MS SQL,您应该查看BCP 程序。

      http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx

      BULK INSERT 命令

      【讨论】:

        【解决方案3】:

        我设法使用下面的代码找出需要什么。添加作为参考,以防有人需要类似的东西。

        try
             {
                //start with the second row
                string[] rowRow = row.Split('\t');
        
                string sku = rowRow[0].Trim();
                string qty = rowRow[1].Trim();
                decimal price = Convert.ToDecimal(rowRow[2].Trim());
                string asin = rowRow[3].Trim();
        
                int pcType = dc.productCodeTypes.Where(c => c.length == asin.Length).FirstOrDefault().id;
        
                //Save to DB
                abcProduct aUpdate = dc.abcProducts.Single(p => p.sku == sku);
                if (aUpdate.asin == asin) { }
                   else { aUpdate.asin = asin; }
                if (aUpdate.codeType == pcType) { }
                   else { aUpdate.codeType = pcType; }
                if (aUpdate.amzPrice == price) { }
                   else { aUpdate.amzPrice = price; }
                dc.SubmitChanges();
             }
        

        【讨论】:

        • 您可以从数据库导入向导中导入它吗?
        • 不像我从亚马逊 MWS 获取文件。所以我需要阅读它然后处理数据并将其存储到数据库中。
        【解决方案4】:

        如果你已经在 WAMP 服务器上安装了 mysql,最简单的方法是:

        1. 假设您的数据库在您自己的计算机上,请在浏览器上打开 PHPMyAdmin,如下所示:localhost/phpmyadmin

        2. 打开您的 mysql 数据库。如果您还没有,请创建一个。即只有数据库(没有表)

        3. 在 DB 处于活动状态时,使用 phpmyadmin 上的 IMPORT 功能。找到屏幕顶部的按钮。

        4. 指定要导入的文件并将分隔字符指示为 TAB。默认情况下它是一个逗号。

        您现在可以直接在数据库中保存您的记录。

        不过有一点……默认情况下,一些 phpmyadmin 设置对文件大小有限制。

        【讨论】:

        • 哦,我明白为什么我得到了 -1 :) 我以为问题是指 mysql 但似乎提问者的意思是 MS Sql 当他写 我的 sql 时。尽管如此,我将把这个答案留在这里,以供其他人学习。如果这里不适合,请告诉我,我会自己删除。
        • 我的 sql 数据库,如 MY sql 数据库。然而,所提供的答案都没有解决问题大声笑:)基本上亚马逊返回一个制表符分隔的平面文件,我需要从中提取数据,然后使用该数据更新我的数据库。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多