从远程数据库获取数据时提高性能

时间:2015-12-05 15:58:32

标签: c# mysql winforms performance remote-server

我使用以下代码连接远程(通过互联网)mysql数据库并使用返回的结果填充数据网格。这样可以正常工作,但是当有大约200行或更多行可用时,填充网格需要一些时间。 我想知道我是否应该做任何调整,以使流程更快,或者最合适的事情是让事情变得更快。

当前编码

connection = new MySqlConnection(db_con_s);
connection.Open();
sql = connection.CreateCommand();
sql.CommandTimeout = 5000;
sql.CommandText = my_query;
MySqlDataReader Reader1 = sql.ExecuteReader();

if (Reader1 != null && Reader1.HasRows)
{
     while (Reader1.Read())                                    
     {
          cv++;
          dataGridView1.Rows.Add(cv,Reader1.GetString("l_id"), Reader1.GetString("l_code"),...............);
          d1 += Reader1.GetDouble("l_amount");
     }
}

2 个答案:

答案 0 :(得分:2)

你能做点什么:

DataTable dt = new DataTable();
dt.Load(Reader1);

dataGridView1.DataSource = dt;

看看是否能提高性能?

答案 1 :(得分:0)

根据您的要求使用分页和获取20/50并填充数据网格。这样可以提高性能。

此外,您可以通过索引要过滤数据的列上的数据来提高查询性能。 由于您还没有提供SQL查询,因此必须将where子句中的所有列编入索引