هل يمكن أن يكون لدينا سلسلة اتصال معممة لخادم SQL و SQL Server Express؟

StackOverflow https://stackoverflow.com/questions/1613739

سؤال

لدي خدمة WCF التي يتم نشرها على الجهاز. يمكن تكوين خدمة WCF هذه إما SQL Server أو SQL Server Express.

ملاحظة : يمكن أن يكون موقع قاعدة بيانات SQL جهازًا آخر آخر عند نشر خدمة WCF.

أضع المعلومات التالية في ملف XML:

  1. معرف المستخدم
  2. كلمه السر
  3. اسم الخادم
  4. إسم الألة

في حالة SQL Server Express

ال اسم الخادم الخاصية هي "sqlexpress". داخليًا ، أقوم بإلحاق اسم الخادم بأسماء machinEname بحيث يكون اسم الخادم هو:

machinename sqlexpress

الذي يتم تمريره إلى سلسلة الاتصال.

في حالة SQL Server

عندما أمر اسم الخادم إلى SQL Server يلقي الاستثناء.

من فضلك أرشدني للحصول على أفضل نهج !!

هل كانت مفيدة؟

المحلول

ما هو الاستثناء؟ كما أنني لست متأكدًا من الفرق بين ServerName و Machinename. ربما كنت تعني خادم الاسم والاستماع إلى instancename؟ يجب عليك بناء سلسلةك بهذه الطريقة (رمز الزائفة ، ليس لدي أي فكرة عن اللغة التي تستخدمها):

DataSource = ServerName
If (InstanceName != "")
    DataSource += "\" + InstanceName

نصائح أخرى

يمكنك استخدام نفس تنسيق سلسلة الاتصال للاتصال بكل من SQL Server Express و Editions الكاملة.

فقط تأكد من أنك تمر بالسلسلة المناسبة ، فإن شيئًا كهذا سيكون شائعًا ، للتركيبات الافتراضية.

Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

ولخادم SQL الكامل

Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

السبب الأكثر ترجيحًا هو أن مثيل MSSQLServer يعمل تحت المثيل الافتراضي بدلاً من مثيل مسمى (وهو ما يفعله SQL Express). يتمثل العمل حوله في تكوين ملف خصائص محلية يحمل سلسلة الاتصال الخاصة بالبيئة. ثم إما مرجع الملف في ملف التكوين نفسه ، أو يكون لديك جزء من عملية الإنشاء الخاصة بك دمج المعلومات في ملف التكوين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top