因此,我试图从数据库中获取数据。我目前正在通过使计时器每秒执行一次获取所需信息的选择查询来完成此任务。但是这样做会使程序每秒滞后很长时间,因此看起来真的很糟糕。
我的问题是,是否有更好的方法在数据库更新后立即获取数据?还是有一种更好的方法来优化我的操作方式,从而不会每秒产生延迟?
private void updateTimer_Tick(object sender, EventArgs e)
{
string mySqlConnection = "<connection_string>"; //left out for security purposes
MySqlConnection connection = new MySqlConnection(mySqlConnection);
List<String> id = new List<String>();
List<String> source = new List<String>();
List<String> message = new List<String>();
using (connection)
{
connection.Open();
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT id, source, message FROM Table WHERE target = @address";
command.Parameters.AddWithValue("@address", ipAddress);
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
id.Add(reader.GetString(0));
source.Add(reader.GetString(1));
message.Add(reader.GetString(2));
}
command.Parameters.Clear();
connection.Close();
}
}
要仅检查表是否已更新,可以执行以下操作:
SHOW TABLE STATUS like 'tablename';
然后您必须找到更新字段:
if (dr.Read())
{
if (dr["Update_time"] != null || dr["Update_time"] != System.DBNull.Value)
{
result = (DateTime) dr["Update_time"];
}
}
将此与您最后看到的结果进行比较,看看它们是否不同。
这在数据库和应用程序上应该不那么费劲。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句