ali_mnkt
شنبه 17 مرداد 1388, 23:21 عصر
سلام به همه
من در مورد query notification یه سری مطلب خوندم اما کدی که می نویسم جواب نمی ده
اگر کسی می تونه کمک کنه ممنون می شم راهنمایی کنه:
خوب من یه sampel نوشتم ولی مشگل داره : برنامه یه فرم خالی است که به sql وصل می شه
و هنگام inser شدن یک ردیف در پایگاه داده پیغام insert رو می ده
namespace query_notification_new
{
public partial class Form1 : Form
{
SqlConnection con2;
SqlCommand com2;
string constr = "server=reza;Integrated Security=SSPI;Database=test;";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
con2 = new SqlConnection("server=reza;Integrated Security=SSPI;Database=test;");
com2 = new SqlCommand("SELECT id,name FROM dbo.Customer", con2);
getdata();
}
private void getdata()
{
com2.Notification = null;
com2.CommandText = "SELECT id,name FROM dbo.Customer";
SqlDependency depend = new SqlDependency(com2);
SqlDependency.Start(constr);
depend.OnChange += new OnChangeEventHandler(namayesh);
MessageBox.Show("insert");
}
private void namayesh(object caller, SqlNotificationEventArgs e)
{
ISynchronizeInvoke i = (ISynchronizeInvoke)this;
if (i.InvokeRequired == true)
{
OnChangeEventHandler tempDelegate = new OnChangeEventHandler(namayesh);
object[] args = { caller, e };
i.BeginInvoke(tempDelegate, args);
return;
}
SqlDependency depend = (SqlDependency)caller;
depend.OnChange -= namayesh;
getdata();
}
}
}
مشگلش اینه که وقتی ردیفی در database اضافه می شه هیچ عکس العملی انجام نمی ده
البته کد مربوط به متد namayesh رو از یه سایت گرفتم اگه نباشه برنامه در یک loop بی نهایت
می یوفته البته دقیقا نمی دونم چرا یه آرایه از نوع object گرفته و چه کاری انجام می ده اگر
کسی می دونه یه توضیح واسه اون بده.
من در مورد query notification یه سری مطلب خوندم اما کدی که می نویسم جواب نمی ده
اگر کسی می تونه کمک کنه ممنون می شم راهنمایی کنه:
خوب من یه sampel نوشتم ولی مشگل داره : برنامه یه فرم خالی است که به sql وصل می شه
و هنگام inser شدن یک ردیف در پایگاه داده پیغام insert رو می ده
namespace query_notification_new
{
public partial class Form1 : Form
{
SqlConnection con2;
SqlCommand com2;
string constr = "server=reza;Integrated Security=SSPI;Database=test;";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
con2 = new SqlConnection("server=reza;Integrated Security=SSPI;Database=test;");
com2 = new SqlCommand("SELECT id,name FROM dbo.Customer", con2);
getdata();
}
private void getdata()
{
com2.Notification = null;
com2.CommandText = "SELECT id,name FROM dbo.Customer";
SqlDependency depend = new SqlDependency(com2);
SqlDependency.Start(constr);
depend.OnChange += new OnChangeEventHandler(namayesh);
MessageBox.Show("insert");
}
private void namayesh(object caller, SqlNotificationEventArgs e)
{
ISynchronizeInvoke i = (ISynchronizeInvoke)this;
if (i.InvokeRequired == true)
{
OnChangeEventHandler tempDelegate = new OnChangeEventHandler(namayesh);
object[] args = { caller, e };
i.BeginInvoke(tempDelegate, args);
return;
}
SqlDependency depend = (SqlDependency)caller;
depend.OnChange -= namayesh;
getdata();
}
}
}
مشگلش اینه که وقتی ردیفی در database اضافه می شه هیچ عکس العملی انجام نمی ده
البته کد مربوط به متد namayesh رو از یه سایت گرفتم اگه نباشه برنامه در یک loop بی نهایت
می یوفته البته دقیقا نمی دونم چرا یه آرایه از نوع object گرفته و چه کاری انجام می ده اگر
کسی می دونه یه توضیح واسه اون بده.