التعبير ريج في C #
-
06-07-2019 - |
سؤال
وأعطى السلسلة أعلاه، وترغب في الحصول على serveripaddress، DB1، رمز المستخدم و**** هذه القيم من هذه السلسلة.
المحلول
وليس هناك حاجة إلى تحليل سلسلة اتصال عندما BCL تستطيع ان تفعل ذلك بالنسبة لك:
var builder = new OleDbConnectionStringBuilder(connectionString);
var provider = builder.Provider;
var dataSource = builder.DataSource;
var initialCatalog = builder["Initial Catalog"];
var userID = builder["User ID"];
var password = builder["Password"];
لاحظ أن سلسلة اتصال OLE DB، أسماء الملكية فقط خصائص عبر مزود القياسية وكتابة بقوة، يتم الوصول إلى كل ما تبقى عبر مفهرس.
نصائح أخرى
لا تستخدم التعابير المنطقية.
وتحليل سلسلة الاتصال باستخدام SqlConnectionStringBuilder
أ > ثم الوصول إلى المفاتيح من ذلك.
var b = new SqlConnectionStringBuilder(myConnectionString);
var dataSource = b["Data Source"];
// etc.
وأسهل بكثير، وأكثر للصيانة وأكثر موثوقية.
data source=([^;]*);Initial Catalog=([^;]*);user id=([^;]*);Password=([^;"]*)
وثم لديك المباريات في المجموعات من 1 إلى 4. إذا كنت تشعر بالملل يمكنك تسمية المجموعات. يساعد قراءة من القانون، على الرغم من ونادرا ما يساعد على سهولة قراءة التعابير المنطقية نفسها.
وأليس من الأسهل لتقسيم القيمة باستخدام '؛' شار ثم تقسيم كل عنصر من '=' شار؟
وبهذه الطريقة يمكن أن تعدل سلسلة الاتصال من قبل المستخدمين وحتى ترتيب العناصر يمكن أن تتغير.