PDA

View Full Version : سوال: تشخیص اجرا بودن سرویس SQLExpress



اوبالیت به بو
سه شنبه 09 تیر 1394, 08:19 صبح
درود بر شما

برنامه ما در هنگام اجرای ویندوز باید اجرا شود و از طریق کد های رجیستری این کار انجام می گردد. در همان ابتدا باید یک Select به دیتابایس ضمیمه شده برنامه ایجاد شود. مساله ای که وجود دارد این است که اجرا شدن سرویس SQLExpress دیرتر از برنامه انجام می پذیرد و در آن لحظه برنامه خطای شماره 26 را می دهد.

ما چطور می توانیم بررسی کنیم که آیا سرویس SQLExpress در ویندوز اجرا شده است؟ این کار را می خواهیم توسط کد سی شارپ انجام دهیم و پس از مطمئن شدن، اقدام به اجرای دستورات دیتابایس کنیم.


ممنون

SabaSabouhi
سه شنبه 09 تیر 1394, 08:30 صبح
درود بر شما

برنامه ما در هنگام اجرای ویندوز باید اجرا شود و از طریق کد های رجیستری این کار انجام می گردد. در همان ابتدا باید یک Select به دیتابایس ضمیمه شده برنامه ایجاد شود. مساله ای که وجود دارد این است که اجرا شدن سرویس SQLExpress دیرتر از برنامه انجام می پذیرد و در آن لحظه برنامه خطای شماره 26 را می دهد.

ما چطور می توانیم بررسی کنیم که آیا سرویس SQLExpress در ویندوز اجرا شده است؟ این کار را می خواهیم توسط کد سی شارپ انجام دهیم و پس از مطمئن شدن، اقدام به اجرای دستورات دیتابایس کنیم.


ممنون

سلام
یه روش کنترل وضعیت سرویس Sql Express هست. اما اگه اشتباه نکنم، برای هر نسخه نام سرویس ممکنه متفاوت باشه.
یه روش دیگه Connect شدن به دیتابیس هست، اگه خطا گرفتی با یه زمان‌بندی مثلاً یک دقیقه یا 30 ثانیه صبر کن، دوباره
برای ارتباط تلاش کن.

صبا صبوحی

(:CLONER
سه شنبه 09 تیر 1394, 09:27 صبح
سلام میشه کمکم کنید.آقای رضا فاتحی

(:CLONER
سه شنبه 09 تیر 1394, 09:30 صبح
چرا کسی جواب نمیده آخه :ناراحت::ناراحت:

TeacherMath
سه شنبه 09 تیر 1394, 10:30 صبح
private void ChechSqlExpressExist() {
var services = ServiceController.GetServices();


var sqlExpress = services.ToList().Find(x => x.ServiceName.Contains("SQLEXPRESS"));


if (sqlExpress == null)
{
MyMessageBox.Show(Resources.NoSqlServer);
Close();
}
else
{
sqlExpress.WaitForStatus(ServiceControllerStatus.R unning);
}

}