Webmatrix csv import to SQL Server Compact



我刚刚切换到Webmatrix,因为我使用的服务器停止支持MySQL/PHP。现在,我正在使用SQLServerCompact将我以前的php-mysql站点转换为Webmatrix。但我遇到了一个小障碍。我正在使用一个脚本将csv文件直接导入我的数据库,在php/mysql中,这并不难做到,但我无法在Webmatrix和SQL Server Compact中使用它。有人知道为什么它不起作用吗?

mysql_query("TRUNCATE TABLE `tmp_st_age`");
   $age = 'load data local infile "../csv/tmp_st_age.csv"
        into table `tmp_st_age` 
        fields terminated by ";"
        enclosed by """
        LINES TERMINATED BY "rn"
        IGNORE 1 LINES';
mysql_query($age) or die(myqsl_error());
echo "Done! ".mysql_affected_rows()." rows inserted into tmp_st_age.<br>";

上面的代码是我试图在Webmatrix中实现的,但我似乎无法正确执行。这只是mysql的一个特性吗?如果是这样的话,有没有什么好的解决方法意味着不使用第三方程序,基于网络的输入就是我想要的。

如果您使用的是SQL Server而不是SQL Compact,您可以使用BULK INSERT,这是一种与您在问题中说明的MySQL非常相似的方法。不幸的是,SQL Compact不支持这一点,因此您只能读取csv并单独插入每一行。大致如下:

var db = Database.Open("your_db");
var data = File.ReadAllLines(path_to_csv_file);
foreach(var row in data){
    var columns = row.Split(new []{';'});
    var sql = "INSERT INTO MyTable (f1, f2, f3, etc) VALUES (@0, @1, @2, etc)";
    db.Execute(sql, item[0], item[1], item[2], etc);
}

最新更新