2013-12-15 104 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