05-10-23, 04:43 PM
(آخر تعديل لهذه المشاركة : 05-10-23, 04:51 PM {2} بواسطة قناص المدينة.)
السلام عليكم اخواني الاعزاء .
اقدم لكم مثال عن التحديث التلقائي لقاعدة البيانات عبر تقنيه SqlDependency وهذه تستخدم دون توقيت
عمل المتغيرات وجملة الاتصالات بالطريقة التي تناسبك (هنا وضع الجمله لكي يتناسب مع المثال وسهولة ا لاستخدام)
ALTER DATABASE "your db" SET ENABLE_BROKER with immediate rollback;
هناك ملاحظة يجب ان يتم التعديل على قاعدة البيانات وتفعيل خاصية
اقدم لكم مثال عن التحديث التلقائي لقاعدة البيانات عبر تقنيه SqlDependency وهذه تستخدم دون توقيت
عمل المتغيرات وجملة الاتصالات بالطريقة التي تناسبك (هنا وضع الجمله لكي يتناسب مع المثال وسهولة ا لاستخدام)
كود :
Private Delegate Sub UICallback()
Private Const CS As String = "Data Source=.;Initial Catalog=mydb;Integrated Security=True"
Private Const QuerySelect As String = "SELECT id,nameFROM my_tab "كود :
Private Sub StartChecking()
Dim cn As SqlClient.SqlConnection = Nothing
cn = New SqlClient.SqlConnection(CS)
Dim dad As New SqlClient.SqlDataAdapter(QuerySelect, cn)
Dim dependency As New SqlClient.SqlDependency(dad.SelectCommand)
AddHandler dependency.OnChange, AddressOf Me.OnNotificationChange
SqlClient.SqlDependency.Start(CS)
Dim ds As New DataSet
dad.Fill(ds)
End Sub
Private Sub OnNotificationChange(ByVal sender As Object, ByVal e As SqlClient.SqlNotificationEventArgs)
Dim dependency As SqlDependency = DirectCast(sender, SqlDependency)
RemoveHandler dependency.OnChange, AddressOf Me.OnNotificationChange
Me.Invoke(New UICallback(AddressOf FillGrid))
StartChecking()
End Sub
' تحميل البيانات
Private Sub FillGrid()
Using conn As New SqlConnection(CS)
conn.Open()
Using cm As New SqlCommand(QuerySelect, conn)
Using adapter As New SqlDataAdapter(cm)
Dim ds As New DataSet
adapter.Fill(ds)
DataGridView1.DataSource = ds.Tables(0)
End Using
End Using
End Using
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
FillGrid()
StartChecking()
End Sub
'عند اغلاق النافذه
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
SqlClient.SqlDependency.Stop(CS)
End SubALTER DATABASE "your db" SET ENABLE_BROKER with immediate rollback;
هناك ملاحظة يجب ان يتم التعديل على قاعدة البيانات وتفعيل خاصية
