2017-11-15 4 views
-1

In C# Ich versuche, die Eigenschaften Data Source und initial catalog aus einer Verbindungszeichenfolge zu erhalten.Eigenschaften aus einer Verbindungszeichenfolge mit Regex extrahieren

Also, wenn ich

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" 

Wie kann ich nur die Werte myDESKTOP und dbName unabhängig von Fall auf der linken Seite des Ausdrucks extrahieren?

+0

Warum regex komponieren, wenn Sie es auf diese Weise tun können https://stackoverflow.com/a/10550705/2093880 – usefulBee

Antwort

2

Sie könnten Ihre Verbindungszeichenfolge für Entity Framework analysieren und die interne Basisverbindungszeichenfolge extrahieren. An diesem Punkt könnte der SqlConnectionStringBuilder geben Sie die einzelnen Teile, die die Verbindungszeichenfolge

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); 
+0

Danke, das funktioniert perfekt . –

+0

Eine andere Möglichkeit es zu tun: https://stackoverflow.com/a/6030633/844142 – LazyTarget

Verwandte Themen