سؤال

لدينا ASP.NET الموقع يستخدم قاعدة البيانات التي نريد أن تكون قادرة على استخدام سلسلة_أحرف_الاتصال للوصول إلى.لقد نجحت في إعداد DSN لربط هذه DB, ولكن أنا لا يمكن أن يبدو أن اكتشاف الصحيح السحر للذهاب مع سلسلة_أحرف_الاتصال.

هل هناك طريقة مباشرة إلى ترجمة القيم من DSN في سلسلة_أحرف_الاتصال?وأنا أعلم أن من واجهة المستخدم ، ليس هناك إجابة واضحة على هذا...كل db بائع يوفر واجهة مستخدم مختلفة لإنشاء DSN بناء على ما يحتاجون.ومع ذلك كنت آمل أن تحت واجهة المستخدم فقط أن تفعل شيئا مثل إنشاء سلسلة اتصال وراء الكواليس ، وأنا يمكن أن ننظر إلى ذلك ترى ما أفعله خطأ.أي أمل هذا ؟ إذا كان الأمر كذلك ، أي مؤشرات على كيفية الحصول على المعلومات التي أحتاج إليها ؟

(لقد ذهبت إلى connectionstrings.com في محاولة للتأكد من بلدي سلسلة الاتصال في الشكل الصحيح ، ولكن يبدو أن لا شيء يعمل...وهذا هو السبب في أنني أحاول أن هذا غريب ترجمة-من-dsn براعة.)

تحرير: شيء يجب أن لا يكون واضحا على أننا لا نريد أن يكون DSN الدخول.أنشأنا واحدة ، واستخدمت في الوقت الحاضر, ولكن نحن نريد أن تكون قادرة على التخلص من استخدام سلسلة_أحرف_الاتصال دون dsn.

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

المحلول

إذا كان يمكنك استخدام OLEDB ثم يمكنك إنشاء ملف UDL.فقط قم بإنشاء مستند نصي جديد, test.udl ثم انقر نقرا مزدوجا فوق.ملء الحوار ، ثم فتحه مرة أخرى مع "المفكرة".فويلا - هناك سلسلة الاتصال.

ODBC هو أصعب قليلا - يمكنك إما إنشاء ملف DSN من مسؤول ODBC أو كزة حول التسجيل في HKLM\Software\ODBC\ODBC.INI\<DSN Name> نظام DSN.عليك في نهاية المطاف مع بعض أزواج الاسم/القيمة.يجب أن تكون قادرة على ترجمة تلك في سلسلة الاتصال.على \\Driver قائمة الفعلية DLL, لذلك سوف تحتاج إلى الحصول على اسم الموفر من HKLM\Software\ODBC\ODBC Data Sources\\<DSN Name>.

إذا كان يمكنك استخدام موفر OLEDB لـ ODBC, ثم يمكنك استخدام UDL خدعة ويكون ذلك بناء سلسلة اتصال من ملف ODBC DSN كذلك.سلسلة اتصال ODBC سوف يكون في الخصائص الموسعة من UDL.

نصائح أخرى

إذا قمت بإنشاء DSN ثم DSN هو سلسلة_أحرف_الاتصال !

يمكنك ببساطة استخدام DSN=<YourDSNName> ونقله إلى OdbcConnection الكائن.

على سبيل المثال باستخدام C#:

string dsnName = "DSN=MyDSN";
using (OdbcConnection conn = new OdbcConnection(dsnName))
{
  conn.Open();
}

بدلا من ذلك, يمكنك استخدام OdbcConnectionStringBuilder فئة ووضع DSN مكان الإقامة.

إلى التوسع في علامة براكيت الإجابة عن التسجيل:عن ODBC 32-بت على ويندوز 64-بت التسجيل المسار HKLM\Software\Wow6432Node\ODBC\ODBC.INI\

في حالتي كان كافيا:

  • إزالة رأس
  • استبدال جميع خطوط جديدة مع الفاصلة المنقوطة
  • استخدام الأقواس كمجموعة فاصل

هنا هو بلدي الملف DSN كما تم إنشاؤها من قبل مسؤول مصادر بيانات ODBC (3 علامة التبويب ملف DSN)

[ODBC]
DRIVER=MySQL ODBC 5.3 ANSI Driver
UID=MyUserName
PORT=3306
DATABASE=mydatabasename
SERVER=localhost

و هنا ما كان سلسلة اتصال بدا مثل:

DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top