دسته بندی ها
14:27 1399/05/14

مشکل عدم اتصال به دیتابیس نسخه sql express

مشخصات سوال کننده :
کاربر : mohammadf69     امتیاز کاربر : 2     رتبه کاربر : 145
دسته بندی : WPF سی شارپ

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 6290
هوش مصنوعی

پاسخ هوش مصنوعی

برای حل مشکل عدم اتصال به SQL Server Express، بهتر است موارد زیر را بررسی کنید:

1. **بررسی نام سرور در connection string**: مطمین شوید که نام سرور در connection string صحیح است. به نظر می رسد شما از .\SQLEXPRESS استفاده کرده اید. می توانید از (localdb)\\MSSQLLocalDB یا فقط local استفاده کنید اگر در حال استفاده از LocalDB هستید.

2. **وضعیت سرویس SQL Server**: اطمینان حاصل کنید که سرویس SQL Server Express در حال اجراست. می توانید این کار را با مراجعه به services.msc و بررسی وضعیت سرویس SQL Server انجام دهید.

3. **اجازه دسترسی**: بررسی کنید که کاربر فعلی شما به پایگاه داده و جدول های مشخص شده اجازه دسترسی دارد. اگر از integrated security=True; استفاده می کنید، کاربر باید به پایگاه داده اجازه دسترسی داشته باشد.

4. **استفاده از User Instance**: اگر از User Instance استفاده می کنید، مطمین شوید که این گزینه در SQL Server Express فعال است. این را می توانید در تنظیمات SQL Server Management Studio (SSMS) بررسی کنید.

5. **سازگاری با Entity Framework**: ممکن است نیاز به تنظیم نسخه Entity Framework یا نصب بسته های NuGet مربوط به Entity Framework داشته باشید. اطمینان حاصل کنید که نسخه های استفاده شده با هم سازگار هستند.

در اینجا یک ورژن اصلاح شده از کانکشن استرینگ شما قرار دارد:

metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;initial catalog=your_database_name;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"

در نهایت، در صورت ادامه مشکل، می توانید از try-catch برای دریافت اطلاعات بیشتر درباره خطاها استفاده کنید:

try
{
    // کد اتصال به دیتابیس و عملیات
}
catch (SqlException ex)
{
    MessageBox.Show($"خطا: {ex.Message}");
}

امیدوارم این موارد به شما کمک کند تا مشکل را شناسایی و حل کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 17:33 1399/05/14

تبدیل دیتابیس ایجاد شده با Sql نسخه استاندارد به نسخه SqlExpress در حالت عادی ممکن نیست. چون وقتی شما دیتابیس رو در حالت استاندارد یا Enterprise ایجاد می کنید یک دیتابیس Full در اختیار دارید که همه امکانات دیتابیس رو در اختیار شما قرار میده. اما در SqlExpress شما بسیاری از امکانات رو در اختیار ندارید. بنابراین نمی تونید یک دیتابیس با حالت Full رو به حالت Express ببرید.

البته چندتا راهکار دارید

  • راهکار اول اینه که یک اسکریپت از دیتابیس خودتون ایجاد کنید. و همون اسکریپت رو در SqlExpress اجرا کنید تا اینبار دیتابیس شما در حالت Express ایجاد بشه. دقت کنید که اگر در دیتابیس خودتون برخی امکانات مثل توابع، SP ها و یا تریگر و ... استفاده کرده باشید ممکنه در Express پشتیبانی نشه.
  1. برای ساختن اسکریپت از دیتابیس روی نام دیتابیس خودتون کلیک راست کنید و گزینه Task و سپس Generate Script رو انتخاب کنید

ساختن اسکریپت دیتابیس

 

در پنجره باز شده گزینه next رو بزنید و سپس در پنجره Choose Object مطابق شکل زیر گزینه ها را انتخاب کنید

 

ایجاد اسکریپت از ساختار دیتابیس

 

دقت کنید در حالت بالا فقط از جداول دیتابیس اسکریپت ساخته میشه و اگر جز جداول موارد دیگه ای هم دارید باید گزینه script entire database رو انتخاب کنید. سپس اسکریپت ایجاد شده رو در SqlExpress اجرا کنید تا جداول شما اینبار در نسخه Express ایجاد بشه.

خب حالا شما یک دیتابیس در Express دارید.

 

  • راهکار دوم هم این لینک رو مطالعه کنید. دقت کنید در هر 2 راهکار بعد از تبدیل دیتابیس خطاهایی رو دریافت خواهید کرد که باید تک تک رفع بشه. در واقع بهتر بود از همان ابتدا دیتابیس را در نسخه SqlExpress ایجاد می کردید.

کانکشن استرینگ در SqlExpress

حالا دقت کنید که شما یک دیتابیس در SqlExpress دارید و کانکشن استرینگی که شما باید استفاده کنید باید کانکشن استرینگ مخصوص این نسخه باشه. جهت مشاهده لیست Connection String به لینکی که قرار داده شده مراجعه کنید و کانکشن مورد نظر خودتون رو پیدا کنید و در پروژه استفاده کنید.

 

اما کانکشن استرینگ شما چیزی مشابه با کد زیر خواهد بود

 

Data Source=localhost\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI;

 

ویرایش شده در سه شنبه 14 مرداد 1399 ساعت 17:34:38
به این پاسخ امتیاز بدهید    4
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود