gpt4 book ai didi

c# - 从数据库中读取数据并将数据存储在列表中

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:26 25 4
gpt4 key购买 nike

我正在从数据库中读取一些数据(关于属性的信息),并将这些信息存储在属性对象中。我将对象放在属性类型的列表中,并在列表框中显示列表的内容。但是,我没有为每个对象获取不同的数据,而是多次获取相同的数据。附言。我在 while 循环中实例化了 Property 对象,但问题仍然存在。

void fillListBoxWithProperties()
{
List<Property> propList = new List<Property>();
db_connection();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "select * from property ";
cmd.Connection = connect;
MySqlDataReader dr = cmd.ExecuteReader();

while(dr.Read())
{
Property prop = new Property();
prop.PropId = Convert.ToInt32(dr["propertyId"]);
prop.Address = dr["Address"].ToString();
prop.PropType = dr["PropertyType"].ToString();
propList.Add(prop);

}

foreach(Property details in propList)
{
lstBoxProperties.Items.Add(String.Format("{0} {1}", details.PropId, details.Address));
}


}

What the list box prints

如果我将此代码添加到循环中只是为了测试:

Property prop = new Property();
prop.PropId = Convert.ToInt32(dr["propertyId"]);
prop.Address = dr["Address"].ToString();
prop.PropType = dr["PropertyType"].ToString();
propList.Add(prop);
//added code
foreach (Property o in propList)
{
Console.WriteLine(o.toString());
}

控制台的结果如下:

巴利亚尔,拉斯穆兰,拉斯穆兰,莱特肯尼莱特肯尼莱特肯尼护航,护航,护航,护航,威多尔,威多尔,威多尔,威多尔,威多尔,先生们,先生们,先生们,先生们,先生们,各位,

属性类别代码:

class Property
{
private static int _propId =0;
private static string _address="";
private static string _propType="";
public Property()
{

}

public int PropId
{
get { return _propId; }
set { _propId = value; }
}
public string Address
{
get { return _address; }
set { _address = value; }
}
public string PropType
{
get { return _propType; }
set { _propType = value; }
}
}

最佳答案

好吧,现在在您添加了 Property 类之后,很清楚为什么您的所有实例似乎都具有相同的内容。您让您的私有(private)成员持有数据 static。因此它们不是针对每个实例单独存在,而是针对该类的所有实例只存在一次。删除 static 关键字(并查看它的作用的一些介绍)

关于c# - 从数据库中读取数据并将数据存储在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36372572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com