Chào các bạn!
Ai đã làm về thời gian thực giúp mình với !!!
Mình đang làm về cái thời gian thực trên MVC.
Dự án có chức năng là: khi một người dùng thêm sửa xóa dữ liệu thì nó sẽ bật ra thông báo cho người dùng khác.
Mình đã làm bật được ra thông báo, nhưng khi thông báo ra nó bật ra nhiều thông báo 1 lúc (thỉnh thoảng 3 hoặc hơn 3 thông báo, có lúc lên đến hơn 10 thông báo), mà trong csdl mình chỉ thay đổi 1 lần.
Code của mình đây
Mã:
public int getWork()
{
int id = 0;
using (var connection = new SqlConnection(_connString))
{
connection.Open();
// Ở đây mình chỉ lấy ra cái ID cuối cùng (vì khi thay đổi dữ liệu thì nó sẽ thêm 1 record vào bảng history)
using (var command = new SqlCommand(@"SELECT [ID] FROM [dbo].[Big_HistoryCalendar] ORDER BY [ID] DESC", connection))
{
command.Notification = null;
var dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange1);
if (connection.State == ConnectionState.Closed)
connection.Open();
var reader = command.ExecuteReader();
command.Dispose();
reader.Read();
id = reader.GetInt32(0);
}
}
return id;
}
private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
bool updated = e.Info == SqlNotificationInfo.Update;
bool changed = e.Type == SqlNotificationType.Change;
bool isClient = e.Source == SqlNotificationSource.Data;
bool acceptable = updated && changed && isClient;
if (acceptable)
{
MessagesHub.SendMessages();
}
}
Mình chỉ muốn nó bật ra 1 thông báo duy nhất khi CSDL thay đổi.
Mình xin cảm ơn trước !!
View more random threads:
Trứng rung điều khiển từ xa Vibrator Spark Of Love Sản phẩm trứng rung bluetooth có điều khiển từ xa này được thiết kế với tông màu Rose Gold viền kim khí trải qua. kích tấc 7,4cm x 3,5cm giúp trứng...
TOP 3 trùy rung điều khiển từ xa...