【发布时间】:2015-12-15 15:38:15
【问题描述】:
我正在尝试从 MySQL 表中获取数据并将其存储到字典中。我知道我可以通过循环来做到这一点,但数据库表包含超过一百万个元组并且会减慢进度。有什么方法可以做到这一点而不必循环所有条目?
DB 表有两列,1st(key) float 类型和 2nd(value) varchar。
我目前的做法:
public static Dictionary<Single, string> GetData()
{
Dictionary<Single, string> dic= new Dictionary<Single, string>();
string query = "select * from table;";
if (OpenConnection() == true)
{
try
{
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
//Something to store DB columns into dictionary without having to loop.
}
reader.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
return dic;
}
【问题讨论】:
-
为什么你有一个规则作为而不必循环?使用循环有什么错误?
-
基本思想是在与主线程不同的线程上执行长进程以不挂起GUI。您可以显示进度条或其他类型的等待消息。
-
其实这只是更大问题的一小部分,我不能花太多时间在上面。循环将使我的工具的整体性能非常缓慢。
-
首先,你的表是不是只有2列?只选择你需要的和你需要的部分数据,而不是整百万
标签: c# mysql asp.net dictionary