说明:我有一个客户端对象列表,其中包含 datetime lasthello 和字符串 isconnect 等。我现在已将对象移动到 sql 表而不是运行时列表。我的问题是,我将如何在表格中查找存在以下内容的条目并进行更改。- 以一种相当优化的方式(通过优化我的意思是快速)“保持”现在也位于表格中,而不是在设置文件中。isconnect 现在是布尔值,而不是字符串。
foreach(entry in mylist)
{
if ((DateTime.Now - TimeSpan.FromSeconds(Settings.Default.Hold)) > entry.lasthello &&
entry.isConnect != "Disconnected")
{
entry.client.Disconnect();
}
}
我如何计算 sql 查询中的时间跨度?òr 应该在多个查询中完成吗?
解决了!
using (SqlConnection conn = new SqlConnection(Connectionstring))
{
SqlCommand cmd = new SqlCommand(DisconnectOnNoHello, conn);
cmd.Parameters.AddWithValue("@lasthello",(DateTime.Now - TimeSpan.FromSeconds(Convert.ToDouble(hold))));
try
{
IScsServerClient client = (IScsServerClient)ByteArrayToObject((byte[]) cmd.ExecuteScalar());
client.Disconnect();
closeConnection(conn);
}
catch (Exception ex)
{
EventLog.WriteEntry(ex.ToString());
}
}