0

ビューの webgrid を介して表示するビューを使用して、northwind db からデータセットを取得しました。ただし、顧客オブジェクトをインスタンス化すると、「id」フィールドを int 値に変換する際にエラーが発生します。これが私のコードです...

    public ActionResult List()
    {
        SqlConnection conn;
        SqlDataAdapter myDataAdapter;
        DataSet myDataSet;

        string cmdString = "SELECT CustomerID, CompanyName, ContactName, ContactTitle FROM Customers";

        conn = new SqlConnection("Data Source=PETERPC\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");
        myDataAdapter = new SqlDataAdapter(cmdString, conn);

        myDataSet = new DataSet();
        myDataAdapter.Fill(myDataSet, "Customers");

        foreach (DataRow dr in myDataSet.Tables[0].Rows)
        {
            customers.Add(new Customer() { id = int.Parse(dr[0].ToString()), co_name = dr[1].ToString(), name = dr[2].ToString(), title = dr[3].ToString() });
        }



        return View(customers);
    }

コントローラーファイルの先頭で宣言されているリスト...

private List<Customer> customers = new List<Customer>();

ただし、これを回避する方法はいくつかありますが、foreach 内では id = int.Parse(dr[0].ToString())常にエラーが発生します。ただし、ID を使用しなくても問題なく動作します。

ここにエラーメッセージがあります...

[FormatException: 入力文字列が正しい形式ではありませんでした。] System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +10726387 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info ) +145 System.Int32.Parse(String s) +23
Movie.Controllers.HelloController.List() in c:\Users\peter_000\Documents\Visual Studio 2012\Projects\Movie\Movie\Controllers\HelloController.cs:52
lambda_method(Closure , ControllerBase , Object[] ) +101

目的は、これらすべてを Web サービスに移行し、それをサービスとして呼び出すことです。これはおそらく些細なことですが、私はそれを回避する方法を見つけることができないようです.

誰でもこれを行うためのより良い方法をアドバイスまたは提案できますか?

4

1 に答える 1