PDA

View Full Version : سوال: استارت سرویسهای SQL SERVER



majid.dev
شنبه 06 شهریور 1389, 16:57 عصر
با سلام

من برنامه ای را نوشته ام به زبان #C که از SQL SERVER EXPRESS EDITION استفاده می کند و حالا نیاز دارم که ببینم به چه صورت میشه چک کرد که آیا سرویس آن استارت شده یا ن و چگونه می توان آنرا استارت کرد، در صورت استوپ بودن سرویس؟
با تشکر

ebnsina
یک شنبه 07 شهریور 1389, 09:16 صبح
باید عرض کنم که در صورت جستجو حتما در سایت پیدا میکردید اما باز هم جا داره که راهتون رو کوتاه کنم :

با این دستور میتونید یک کلاس کنترل کننده ی سرویس بسازید (که البته چند جور دیگه هم میشه اون رو ساخت) و بعد با این کلاس کنترل کننده ی سرویس ، به سرویس دسترسی داشته باشید.




System.ServiceProcess.ServiceController sqlService = new ServiceController("SQL Server (SQLEXPRESS)");

یعنوان مثال سرویس رو متوقف یا اجرا کنید یا از وضعیت اون با خبر بشید.

ebnsina
یک شنبه 07 شهریور 1389, 09:24 صبح
یک مثال هم براتون مینویسم که بهتر موضوع براتون باز بشه :

مثلا من در این مثال میخوام اول سرویس رو متوقف و بعد دوباره اجرا کنم.
فقط دقت داشته باشیم که چون دستورات توقف و اجرای این کلاس را از نوع Asyn نوشتن ، پس باید تا زمان به پایان رسیدن اون کار صبر کنیم و بعد کار بعدی راانجام بدیم.
حلقه ی while در واقع برای این منظور بکار گرفته شده است.





// ايجاد کلاس کنترل کننده ي سرويس
System.ServiceProcess.ServiceController sqlService = new ServiceController("SQL Server (SQLEXPRESS)");


// جهت توقف سرويس
sqlService.Stop();

// جهت اطلاع از به انجام رسيدن توقف سرويس
while (sqlService.Status != ServiceControllerStatus.Stopped)
{
Application.DoEvents();
sqlService.Refresh();
}


// جهت شروع بکار سرويس
sqlService.Start();






امیدوارم که کمکی شده باشه.