Webmatrix csv导入到SQL Server Compact

Webmatrix csv导入到SQL Server Compact,sql,csv,razor,webmatrix,Sql,Csv,Razor,Webmatrix,我刚切换到Webmatrix,因为我使用的服务器不再支持MySQL/PHP。现在,我正在使用SQLServerCompact将旧的php mysql站点转换为Webmatrix。但我遇到了一个小麻烦。我正在使用一个脚本直接将csv文件导入到我的数据库中,在php/mysql中这并不是很难做到,但在Webmatrix和SQL Server Compact中我无法让它工作。有人知道为什么它不起作用吗 mysql_query("TRUNCATE TABLE `tmp_st_age`"); $ag

我刚切换到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 "\r\n"
        IGNORE 1 LINES';

mysql_query($age) or die(myqsl_error());
echo "Done! ".mysql_affected_rows()." rows inserted into tmp_st_age.<br>";
mysql\u查询(“截断表`tmp\u st\u age`”;
$age='加载数据本地填充。./csv/tmp_st_age.csv“
进入表“tmp_st_age”
以“;”结尾的字段
用“\”括起来
以“\r\n”结尾的行
忽略1行';
mysql_query($age)或die(myqsl_error());
回声“完成!“.mysql_受影响的_行()。”插入tmp_st_age的行。
”;

上面的代码是我试图在Webmatrix中实现的,但我似乎无法将其正确实现。这是否仅仅是mysql功能?如果是,是否有什么好的解决方法可以避免使用第三方程序,我正在寻找基于web的输入。

如果您使用的是SQL Server而不是SQL Compact,您可以使用它一种与您在问题中介绍的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);
}

正如我所预料的,我对SQL Compact的了解越多,我就越发现我不能在我的web项目中使用它,所以我必须使用SQL Server。对于大容量插入将起作用。我是MS SQL和Webmatrix的新手,所以我必须找到一个解决方法。感谢您指出这一点。