0

*.TXT約 1 ~ 200 行でいっぱいのファイルがあります。各行は都市/郊外の名前にすぎず、このファイルの各行をデータベースに挿入しようとしています。

うまくいかなかったので、すべてを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;  
    }  
}
4

1 に答える 1

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; 

    } 
} 
于 2012-05-20T13:50:49.893 に答える