كيفية الحصول على اسم الملقم من خلال رمز إذا كان SQL Server (Standard Edition) مثبت

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

سؤال

كيفية الحصول على اسم الملقم من خلال رمز إذا كان SQL Server (Standard Edition) تثبيت.

ونحن تمرير اسم الملقم أثناء إنشاء سلسلة اتصال للاتصال بـ SQL Server.يمكننا استرداد هذه القيمة من خلال الكود ؟

string sqlConnectionString = string.Format(
"user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB;
connection timeout={3}",
dirDBinfo.UserName, dirDBinfo.Password, "ServerName", dirDBinfo.TimeOut);
هل كانت مفيدة؟

المحلول

أنا لست متأكدا من أنني أفهم ما تريد.

إذا كان لديك بالفعل سلسلة اتصال و تحاول استخراج اسم الخادم من ذلك لاستخدامها في أماكن أخرى ، يمكنك عكس ذلك كما يلي:

var parser = new SqlConnectionStringBuilder(connectionString);
var serverName = parser.DataSource;

إذا كنت بناء سلسلة الاتصال الخاصة بك لأول مرة ، ثم:

  1. إذا كنت تعرف أن كنت ترغب في الاتصال SQL Server على الجهاز الخاص بك رمز العميل بتنفيذ ثم مجرد استخدام (local) للحصول على اسم الملقم.إذا كان SQL Server مثيل الاسم ، ثم تحديد مثل هذا: (local)\myinstancename.
  2. إذا كنت لا تعرف مسبقا ما server للاتصال ، ثم الأمر متروك لك للحصول على تلك المعلومات من مكان آخر.

نصائح أخرى

ولا يمكنك فقط تنفيذ SELECTSERVERNAME ضد هذا الصدد؟

هل الخادم على الكمبيوتر المحلي منتديات إذا كان الأمر كذلك، تعيين اسم الخادم لlocalhost.
إن لم يكن، استخدام SqlDataSourceEnumerator .


وأيضا، بدلا من بناء سلسلة اتصال باستخدام String.Format، يجب عليك استخدام <لأ href = "http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx" يختلط = "noreferrer نوفولو"> SqlConnectionStringBuilder . وهذا التعامل القيم مع منقوطة.

وعلى سبيل المثال:

var builder = new SqlConnectionStringBuilder();

builder.UserID = dirDBinfo.UserName;
builder.Password = dirDBinfo.Password;
builder.Server= "localhost";
builder.UserID = dirDBinfo.UserName;
builder["Trusted_Connection"] = "no";
builder.Database = "TestDB"
builder.ConnectTimeout = dirDBinfo.TimeOut;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top