作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Visual Studio 2012 和 C#。我有一个问题:我想将 SQL 查询的所有结果收集到字典中。
这是我的代码:
Dictionary<int,List<string>> dic = new Dictionary<int, List<string>>();
string query = "select request_number, service_category ,service_type from enugro.enugro_service_requests_info;";
MySqlConnection connec = new MySqlConnection(strcon);
connec.Open();
MySqlCommand cmd = new MySqlCommand(query,connec);
MySqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
dic.Add((int)reader["request_number"], { reader["service_category"], reader["service_type"] });
}
// display result
foreach(var disp in dic)
{
MessageBox.Show(disp.Key.ToString()+"= "+disp.Value.ToString());
}
如您所见,我的 SQL 查询返回 3 列以供检索并存储到字典中。你能帮我吗?
最佳答案
由于字典值的类型是 List<string>
,然后您需要为每一行创建一个新列表并将其添加到字典中,如下所示:
dic
.Add(
(int)reader["request_number"],
new List<string>
{
reader["service_category"].ToString(),
reader["service_type"].ToString()
});
考虑创建一个类来保存每行所需的信息,并将其用作字典值的类型。这样的类看起来像这样:
public class MyValue
{
public string ServiceCategory {get;set;}
public string ServiceType {get;set;}
}
然后你可以让你的字典类型为 Dictionary<int, MyValue>
这将允许您执行此操作:
dic
.Add(
(int)reader["request_number"],
new MyValue
{
ServiceCategory = reader["service_category"].ToString(),
ServiceType = reader["service_type"].ToString()
});
关于c# - 如何在 C# 中将查询保存到字典中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35136143/
我是一名优秀的程序员,十分优秀!