string connectionString = ConfigurationManager.AppSettings["AllRttpDBConnectionString"];
MySqlConnection connection = new MySqlConnection(connectionString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "Select * from test where ServiceName like 'T%' " ;
try
{
connection.Open();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
try
{
MySqlDataReader reader;
reader = command.ExecuteReader();
while (reader.Read())
{
Player.Name = reader["Name"].ToString();
Player.Number = Convert.ToInt32(reader["Number"].ToString());
//push to list
PlayerList.Add(Player);
}
connection.Close();
}
catch (Exception e)
{
connection.Close();
logger.Info(e.ToString());
}
上面是我用來從數據庫中讀取多行到列表中的代碼。但是,我所有的列表項都具有完全相同的數據(數據庫的最後一行)。從數據庫讀取多行 - 我哪裏錯了?
我知道它可能是一個非常簡單,愚蠢的錯誤,但我只是看不到它。
哦......我以爲它會覆蓋循環的每一次迭代的值。猜猜我錯了。讓我試試你的解決方案。 – xbonez 2010-10-05 20:12:50
它每次迭代都會覆蓋這些值,問題在於您一遍又一遍地添加相同的實例,因爲在您讀取期間更新值時它是相同的實例,因此列表中的每個元素都會更新,因此列表中的每個元素都會更新對象的相同實例。 – Daniel 2010-10-05 20:16:00
謝謝。這工作! – xbonez 2010-10-05 20:16:07