问题是这些表是如何相关的,你有一个外键table_age
导致tbl_name
吗?然后,您可以使用一个JOIN
和单个查询。
您可以填充一个List<User>
whereUser
是具有两个属性的自定义类:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
现在使用 anINNER JOIN
来链接 FK 上的两个表,您将获得每个名称的正确年龄:
string sql = @"SELECT n.Name,a.Age
FROM tbl_Name n
INNER JOIN tbl_Age a
ON n.NameID=a.NameID
ORDER BY Name, Age";
User
您可以在阅读所有记录时添加 in 的实例:
List<User> users = new List<User>();
using (var con = new System.Data.SqlClient.SqlCeConnection("Connection-String"))
using (var cmd = new SqlCeCommand(sql, con))
{
con.Open();
using (var rd = cmd.ExecuteReader())
{
while (rd.Read())
{
string name = rd.GetString(0);
int age = rd.GetInt32(1);
users.Add(new User { Name = name, Age = age });
}
}
}
如果要输出全部:
foreach (User u in users)
Console.WriteLine("{0};{1}", u.Name, u.Age);
编辑:这里是 VB.NET 版本:
Dim users As New List(Of User)()
Using con = New System.Data.SqlClient.SqlCeConnection("Connection-String")
Using cmd = New SqlCeCommand(sql, con)
con.Open()
Using rd = cmd.ExecuteReader()
While rd.Read()
Dim name As String = rd.GetString(0)
Dim age As Integer = rd.GetInt32(1)
users.Add(New User() With { _
Key .Name = name, _
Key .Age = age _
})
End While
End Using
End Using
End Using