2012-05-20 80 views
0

我有一個*.TXT文件充滿了大約1 - 200行。每一行只是一個城市/郊區的名稱,並且試圖將每個行插入到該數據庫中。逐行插入到SQL Server CE數據庫中

我把它全部放在Try/Catch塊中,因爲它不起作用,但是當輸出異常的細節時(如果有的話)沒有任何顯示。

我已經證實,我可以只用這條線一次插入1個記錄:

db.Execute("insert into SuburbsPostCodesAndStates (Suburb, State) values (@0, @1)", "lol", "nsw"); 

的代碼我有我使用插入這些線路是:

@{ 
    var message = ""; 
    var db = Database.Open("SSSCCC"); 

    try 
    { 
     if(File.Exists(Href("~/NSW.txt"))) 
     { 
      string[] text = File.ReadAllLines(Href("~/NSW.txt")); 

      using (StringReader reader = new StringReader(text)) 
      { 
       string line; 

       while ((line = reader.ReadLine()) != null) 
       { 
        db.Execute("insert into SuburbsPostCodesAndStates (Suburb, State) values (@0, @1)", line, "NSW"); 
       } 
      } 
     } 
    } 
    catch(Exception exception) 
    { 
     message = exception.Message; 
    } 
} 

<!DOCTYPE html> 

<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
    </head> 
    <body> 
     @message 
    </body> 
</html> 

我怎麼去解決這個問題?

任何幫助都非常感謝。

謝謝

解決方法:

@{ 
    var message = ""; 
    var db = Database.Open("SSSCCC"); 

    try 
    { 
     if(File.Exists(Server.MapPath("NSW.txt"))) 
     { 
      string[] text = File.ReadAllLines(Server.MapPath("NSW.txt")); 

      if(text.Length == 0) { throw new Exception("File does not contain any lines"); } 

      foreach(string line in text) 
      { 
       db.Execute("insert into SuburbsPostCodesAndStates (Suburb, State) values (@0, @1)", line, "NSW"); 

      } 
     } 
     else 
     { 
      throw new Exception("File does not exist"); 
     } 
    } 
    catch(Exception exception) 
    { 
     message = exception.Message; 
    } 
} 
+0

@ p.campbell - 我正在使用WebMatrix附帶的SQL Server Compact。 – Arrow

+0

也許你應該考慮BULK INSERT,而不是調用100個單獨的插入語句...... –

+0

無法批量插入WebMatrix SQL Compact DB(這就是爲什麼我幾乎決定不使用WebMatrix)_unless您首先將壓縮數據庫遷移到由您的託管公司提供的一個,但我還不能這樣做._ – Arrow

回答

1

我不知道你爲什麼在這裏使用StringReader ...試試這個吧。

@{ 
      var message = ""; 
    var db = Database.Open("SSSCCC"); 
    try 
    { 
     if(File.Exists(Server.MapPath("~/NSW.txt"))) 
     { 
      string[] text = File.ReadAllLines(Server.MapPath("~/NSW.txt")); 
      if(text.Length == 0) throw new Exception("File does not contain any lines"); 
      foreach(string line in text) 
      { 
       db.Execute("insert into SuburbsPostCodesAndStates (Suburb, State) values (@0, @1)", line, "NSW"); 

      } 
     } 
     else 
     { 
      throw new Exception("File does not exist"); 
     } 
    } 
    catch(Exception exception) 
    { 
     message = exception.Message; 

    } 
} 
+0

同樣的問題,對不起。這沒有奏效。 – Arrow

+0

我添加了一些異常,再給它一次,看看是否有這些異常拋出。 –

+0

該死的!我知道我在那裏還有其他條款。它說「文件不存在」。這顯然是在撒謊......但至少我知道現在不在正確的位置。謝謝你@Chris Gessler – Arrow

相關問題