所以问题可以归结为 ADO.NET 部分,如何value
从id
:
string sql = "SELECT value FROM dbo.table WHERE id = @id";
var pairs = new List<Tuple<int, string>>();
using (var con = new SqlConnection(yourConnectionString))
using (var cmd = new SqlCommand(sql, con))
{
con.Open();
foreach (int i in numbers)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@id", i);
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
pairs.Add(Tuple.Create(i, dr.GetString(0)));
}
}
}
}
我使用List<Tuple<int, string>>
as 集合来存储所有 ID 和名称,您可以将其用作数据源或进一步处理(我不知道您是否只想显示在表中具有名称的 ID)。您可以通过这种方式访问 ID + 名称:
foreach(var pair in pairs)
{
int id = pair.Item1;
string name = pair.Item2;
}
请注意,我使用了using
-statement 来确保所有非托管资源都尽快得到处理。这也将关闭连接。
始终使用参数来防止 sql-injection 或转换问题,即使您目前不容易受到它的影响。