C# 如何在c中添加对象列表
我有一个用户有多辆车。我需要创建一个对象列表,列出他所有汽车的所有属性 他的车C# 如何在c中添加对象列表,c#,list,object,C#,List,Object,我有一个用户有多辆车。我需要创建一个对象列表,列出他所有汽车的所有属性 他的车 UserID UserCarID 101 C101 101 C102 101 C103 他的汽车性能表 UserCarID Model Year Color C101 Audi 2012 Black C102 BMW 2012 Silver C103 VW 2012 White C104
UserID UserCarID
101 C101
101 C102
101 C103
他的汽车性能表
UserCarID Model Year Color
C101 Audi 2012 Black
C102 BMW 2012 Silver
C103 VW 2012 White
C104 Audi 2013 Black
C105 VW 2013 White
我想要一张清单,这样就只有他的汽车清单出现了
UserID UserCarID Model Year Color
101 C101 Audi 2012 Black
101 C102 BMW 2012 Silver
101 C103 VW 2012 White
我试过了
using (SqlConnection con = .....)
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "Select * FROM CarTable Where UserID = @ID";
cmd.Parameters.Add(new SqlParameter("@ID", UserID));
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
for (int i = 0; i <= tempID.Length - 1; i++)
{
tempID[i] = -1;
}
int j = 0;
while (reader.Read())
{
tempID[j] = (int)reader["ID"];
j++;
}
reader.Close();
}
con.Close();
}
foreach (int carID in tempID)
{
if (carID > -1) return JsonConvert.SerializeObject(getAllCars(carID));
}
public static object getAllCars(int id){
.........
return carPropertiesObject;
}
getAllCars返回汽车所有属性的列表。
这是可行的,但我只得到C101的属性。我该怎么做呢?谢谢你我对你的确切问题有点不清楚,但我想试一试: 似乎是创建汽车类的好时机:
class Car
{
int UserID;
int UserCarID;
string Model;
int Year;
string Color;
}
然后
您用来处理查询结果的方法在我看来非常奇怪。你这样做有什么具体原因吗?你的问题不是很清楚。这似乎是SQL查询问题,而不是列表连接问题 假设这两个表都是SQL Server中的表,您可以通过一个查询从数据库中获取结果:
Select * FROM CarTable, CarPropertiesTable
WHERE CarTable.UserId = CarPropertiesTable.UserId
AND CarTable.UserId = @ID
然后迭代返回的数据行并将其转换为您的对象。查看关于创建Car类的另一个答案,这是一个非常好的主意,然后将它们序列化为JSON。Return将在第一个结果时退出方法,退出foreach循环。谢谢您actkatiemacias。。。我想,因为我只得到第一组数据。如何从getAllCarsWhat中添加剩余的数据集tempID?它在代码的很多行中都有使用,但您没有在任何地方定义它…Abe。。。它是全局定义的,它是一个存储car表中所有UserCarID的数组谢谢你的建议Mattias,但我的目标是创建一个对象列表谢谢Jason。。。我的情况的问题是我从一个存储过程中获得了CarTable…所以我真的不能只使用sql查询谢谢Abe。。。我正在从一个存储过程中获取carTable。我只是放了sql查询,使方法更有意义。。。我会试试你的解决方案。。。我真傻。。。非常感谢你,阿贝。。。工作得很有魅力。。。我真的是个新手。。。我没有想到使用类而不是数组。。。谢谢你会的
Select * FROM CarTable, CarPropertiesTable
WHERE CarTable.UserId = CarPropertiesTable.UserId
AND CarTable.UserId = @ID