-3

データベースからレコードを取得し、それをオブジェクトに取り込むことができます

for (int i = 0; i < selectedFishes.Length; i++)
{
    string stm = "SELECT * FROM Data WHERE name='" + selectedFishes[i] + "'";
    SQLiteCommand cmd = new SQLiteCommand(stm, conn);
    SQLiteDataReader rdr = cmd.ExecuteReader();
    while (rdr.Read())
    {
        fish[i] = new fish(rdr.GetString(0), rdr.GetDouble(1), rdr.GetDouble(2), rdr.GetDouble(3), rdr.GetDouble(4));
        Console.WriteLine(fish[i].name + " " + fish[i].value1 + " " + fish[i].value2 + " " + fish[i].value3 + " " + fish[i].value4);//it can be displayed into console
    }
}

MessageBox.Show(selectedFishes.Length.ToString()+" "+fish.Length.ToString());//results are same if the value >5 cant be displayed
for (int i = 0; i < fish.Length; i++)
{
   Console.WriteLine(fish[i].name + " " + fish[i].value1 + " " + fish[i].value2 + " " + fish[i].value3 + " " + fish[i].value4);

}

なぜ表示できないのですか?エラーは「オブジェクト参照がオブジェクトのインスタンスに設定されていません」です。

4

3 に答える 3

1

NullReferenceException では常に、値を持つと予想される各オブジェクトを ToString() しようとします。

于 2013-12-05T19:34:00.910 に答える
0

f9 を押して、2 番目のコンソール書き込み行にブレークポイントを追加します。f5 を押します。プログラムがブレークポイントにヒットするようにします。name または value1-4 が null かどうかを確認します。null 値を処理するコードを追加します。

于 2013-05-26T08:55:04.523 に答える