0
    Sqlreader = cmd.ExecuteReader();        //sqlreader reading rows from a database table 
        displaytable disp = new displaytable(); //class with fields regno,name,age,sex

        List<displaytable> mystring = new List<displaytable>();

        while (SQLreader.Read())
        {

            disp._regno = reader.GetString(0);
            disp._name = reader.GetString(1);
            disp._age = reader.GetInt32(2);
            disp._sex = reader.GetString(3);
            mystring.Add(disp);
          //  mystring.Insert(i++, disp);
        }
        con.Close();
        return mystring;
                                    "

上記のコードは、データテーブルからリストに行を取得するために使用されます。サンプル行は 0001 aaaa 25 male 0002 bbbb 26 female 0003 cccc 28 male で、これが予想される出力です。

しかし残念ながら、私のコードはどこかで間違っているため、次のような出力が得られます

         0003   cccc  28  male
         0003   cccc  28  male
         0003   cccc  28  male

すべての行フィールドを文字列に変換するリストを試してみましたが、必要な正確な結果が得られましたが、クラス オブジェクトでは機能しません。私を助けてください。

4

1 に答える 1

4

のまったく同じオブジェクトを更新および挿入していますdisplaytable。オブジェクトの作成をサイクルに移動します。

while (SQLreader.Read())
{
    displaytable disp = new displaytable();
    disp._regno = reader.GetString(0);
    disp._name = reader.GetString(1);
    disp._age = reader.GetInt32(2);
    disp._sex = reader.GetString(3);
    mystring.Add(disp);
}
于 2013-08-16T11:54:06.937 に答える