SqlDependency 监听数据出现无限刷新???
代码如下:
public partial class Form2 : Form
{
string _connStr; public Form2()
{
_connStr = ConfigurationManager.ConnectionStrings["Students"].ToString(); InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
SqlDependency.Start(_connStr);
UpdateGrid();
} private void UpdateGrid()
{
string sqlstr = "select * from students";
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(_connStr))
{
using (SqlCommand command = new SqlCommand(sqlstr, conn))
{
command.CommandType = CommandType.Text;
conn.Open();
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
SqlDataAdapter da = new SqlDataAdapter(command); da.Fill(dt);
conn.Close();
}
}
selectDataSource(dt);
} private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
UpdateGrid();
} delegate void DataSource(DataTable dt); private void selectDataSource(DataTable dt)
{
if (dataGridView1.InvokeRequired)
{
var d = new DataSource(selectDataSource);
Invoke(d, dt);
}
else
{
dataGridView1.DataSource = dt;
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货