我有一個*.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;
}
}
@ p.campbell - 我正在使用WebMatrix附帶的SQL Server Compact。 – Arrow
也許你應該考慮BULK INSERT,而不是調用100個單獨的插入語句...... –
無法批量插入WebMatrix SQL Compact DB(這就是爲什麼我幾乎決定不使用WebMatrix)_unless您首先將壓縮數據庫遷移到由您的託管公司提供的一個,但我還不能這樣做._ – Arrow