2013-12-15 78 views
3

我刚刚切换到Webmatrix,因为我使用的服务器停止支持MySQL/PHP。现在我使用SQL Server Compact将我的旧的php mysql站点转换为Webmatrix。但是我遇到了一点麻烦。我正在使用脚本直接将csv文件导入到我的数据库中,在php/mysql中这并不难,但是我无法在Webmatrix和SQL Server Compact中使用它。任何人有想法为什么它不工作?Webmatrix csv导入到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 "\r\n" 
     IGNORE 1 LINES'; 

mysql_query($age) or die(myqsl_error()); 
echo "Done! ".mysql_affected_rows()." rows inserted into tmp_st_age.<br>"; 

上面的代码是我试图在Webmatrix中实现,但我似乎无法得到它正确。这是否仅仅是一个mysql功能?如果是这样,是否有任何良好的解决方法,即不使用第三方程序,基于Web的输入是我正在寻找。

回答

2

如果您使用的是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); 
} 
+0

正如我所料,我越读SQL Compact的越多,我看到我不能在我的web项目中使用它,所以我必须去与SQL Server相反。并且为此BULK INSERT将会工作。我是MS SQL和Webmatrix的新手,所以我只能找到解决办法。感谢您指出这一点。 – Tman