【问题标题】:Extract properties from a connection string using Regex使用正则表达式从连接字符串中提取属性
【发布时间】:2017-11-15 15:31:35
【问题描述】:

C# 中,我试图从连接字符串中获取Data Sourceinitial catalog 属性。

如果我有

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

如何只提取值 myDESKTOPdbName 而不管表达式左侧的大小写?

【问题讨论】:

标签: c# regex


【解决方案1】:

您可以剖析实体框架的连接字符串并提取内部基本连接字符串。此时 SqlConnectionStringBuilder 可以为您提供组成连接字符串的各个部分

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

string con = string.Join("=", 
                    string.Join(";", test.Split(';').Skip(2))
                          .Split('=').Skip(1)).Trim('"');

SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(con);
Console.WriteLine(sb.DataSource);
Console.WriteLine(sb.InitialCatalog);

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 2014-08-25
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    相关资源
    最近更新 更多