我在.NET 2.0中有一个简单的SQL查询(使用SqlCommand,SqlTransaction),它返回一个整数字符串对(ID,Name)表.我想把这些数据放到像这样的字典中Dictionary<int, string>.
我可以将结果导入DataTable,但即使迭代它,我也不确定如何进行打字和所有这些.我觉得这一定是一个常见的问题,但我没有找到任何好的解决方案.
提前致谢.
Ahm*_*eed 15
您可以尝试类似于此的方法,调整为您当前正在循环结果:
Dictionary<int, string> dictionary = new Dictionary<int, string>();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(queryString, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
dictionary.Add(reader.GetInt32(0), reader.GetString(1));
}
}
}
}
// do something with dictionary
Run Code Online (Sandbox Code Playgroud)
该SqlDataReader.GetInt32方法和SqlDataReader.GetString方法将表示ID和Name列索引,分别.
Gab*_*art 11
您可以将其作为DataReader返回,并使用linq构造字典:
Dictionary<int, string> dictionary;
using (SqlCommand command = new SqlCommand(queryString, connection))
using (SqlDataReader reader = command.ExecuteReader()) {
dictionary = reader.Cast<DbDataRecord>()
.ToDictionary(row => (int)row["id"], row => (string)row["name"]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19978 次 |
| 最近记录: |