【问题标题】:Webmatrix csv import to SQL Server CompactWebmatrix csv 导入到 SQL Server Compact
【发布时间】:2014-01-02 20:26:29
【问题描述】:

我刚刚切换到 Webmatrix,因为我使用的服务器停止支持 MySQL / PHP。现在我正在使用 SQL Server Compact 将我的旧 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>";

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

【问题讨论】:

    标签: sql csv razor webmatrix


    【解决方案1】:

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

    【讨论】:

    • 正如我所料,我对 SQL Compact 阅读的越多,我就越发现我无法在我的 Web 项目中使用它,所以我不得不改用 SQL Server。并且对于该 BULK INSERT 将起作用。我是 MS SQL 和 Webmatrix 的新手,所以我只需要找到一个解决方法。感谢您指出这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2011-03-19
    相关资源
    最近更新 更多