【发布时间】:2012-07-16 14:06:45
【问题描述】:
我有一个制表符分隔的平面文件,我需要从中提取数据并更新我的 MS-SQL 数据库中的表。
有没有人详细说明我将如何做这件事?也许是某个网站或教程?
提前致谢。
更新:基本上亚马逊返回一个制表符分隔的平面文件,我需要从中提取数据,然后使用该数据更新我的数据库。我已经知道如何从 MS SQL 数据库中导出数据了 :)
【问题讨论】:
标签: asp.net sql-server flat-file csv
我有一个制表符分隔的平面文件,我需要从中提取数据并更新我的 MS-SQL 数据库中的表。
有没有人详细说明我将如何做这件事?也许是某个网站或教程?
提前致谢。
更新:基本上亚马逊返回一个制表符分隔的平面文件,我需要从中提取数据,然后使用该数据更新我的数据库。我已经知道如何从 MS SQL 数据库中导出数据了 :)
【问题讨论】:
标签: asp.net sql-server flat-file csv
步骤如下:
1- 右键单击您的数据库并选择任务/导出数据,
2- 数据源:平面文件
3- 分隔符:制表符
向导中的下一步...
【讨论】:
如果您使用的是 MS SQL,您应该查看BCP 程序。
http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx
或BULK INSERT 命令
【讨论】:
我设法使用下面的代码找出需要什么。添加作为参考,以防有人需要类似的东西。
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();
}
【讨论】:
如果你已经在 WAMP 服务器上安装了 mysql,最简单的方法是:
假设您的数据库在您自己的计算机上,请在浏览器上打开 PHPMyAdmin,如下所示:localhost/phpmyadmin
打开您的 mysql 数据库。如果您还没有,请创建一个。即只有数据库(没有表)
在 DB 处于活动状态时,使用 phpmyadmin 上的 IMPORT 功能。找到屏幕顶部的按钮。
指定要导入的文件并将分隔字符指示为 TAB。默认情况下它是一个逗号。
您现在可以直接在数据库中保存您的记录。
不过有一点……默认情况下,一些 phpmyadmin 设置对文件大小有限制。
【讨论】: