弹出新窗体后界面卡死
public void UpdateGrid()
{
using (SqlConnection connection = new SqlConnection(_connStr))
{
using (SqlCommand command = new SqlCommand("select ID From [dbo].[Messages] where isOK=0", connection))
{
command.CommandType = CommandType.Text;
connection.Open();
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
SqlDataReader sdr = command.ExecuteReader();
while (sdr.Read())
{
int ID = (int)sdr["ID"];
TT.ID = Convert.ToString(ID);
//
try
{
Messagescs x = new Messagescs();
x.Show();
}
catch (Exception re)
{
MessageBox.Show(re.Message);
}
System.Threading.Thread.Sleep(6000);
string updata = string.Format("update [Messages] set isOK=1 where id=" + ID);
SqlCommand upgx = new SqlCommand(updata, connection);
connection.Open();
upgx.ExecuteNonQuery();
connection.Close();
}
sdr.Close();
connection.Close();
}
}
}
public void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
UpdateGrid();
}
这是用SqlDependency 数据库监听做的一个窗体,大概想实现的效果是当有新纪录写入后isok默认是0.然后程序会监听数据库信息,监听到有0的就读取出来,然后更新为isok为1,现在的问题是打开程序后 当数据库写入数据后新弹出来的Messagescs子窗体就会卡死,求指导