Ich habe eine dienstbasierte Datenbank und die Standardverbindungszeichenfolge lautet
@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\James\OneDrive\Miller Veneers\Program\Current\HandHeld\SQLLibrary\MyDatabase.mdf;Integrated Security=True";
Was funktioniert. Mein Problem ist, dass es nicht mehr funktioniert, wenn ich es in eine Dynamik umwandle, damit ich es auf einem anderen Computer verwenden kann.
Ich habe
versucht
@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" +
(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) +
@"\MyDatabase.mdf;Integrated Security = True;");
und
@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=/MyDatabase.mdf;Integrated Security = True;
vielen Dank!
2 Antworten
Ihre beiden Beispiele sind etwas falsch.
Ihr zweiter Versuch geht vermutlich wegen des Schrägstrichs (/) anstelle des Backslash () schief.
Darüber hinaus denke ich, dass Ihr Weg zu falschen Ergebnissen führen kann. Wenn sich Ihr Code in einer DLL befindet, die sich im Assemblycache befindet, erhalten Sie einen Pfad zum Assemblycache und nicht den Speicherort Ihrer Anwendung. Vielleicht sollten Sie GetEntryAssembly
in Betracht ziehen.
Versuchen Sie, den dynamischen Pfad mit dem Dateinamen mit Path.Combine(...)
zu kombinieren.
string connectionString =
@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" +
System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().GetName().CodeBase),
"MyDatabase.mdf") +
@";Integrated Security = True;"
Ich würde vorschlagen, es in der Konfigurationsdatei zu speichern und dann den Benutzernamen aus der Konfiguration zu ändern, wenn Sie den DB-Pfad ändern möchten
Verwandte Fragen
Neue Fragen
c#
C # (ausgesprochen "siehe scharf") ist eine statische Typisierungsprogrammiersprache mit mehreren Paradigmen, die von Microsoft entwickelt wurde. C # -Code zielt normalerweise auf die .NET-Tools und -Laufzeiten von Microsoft ab, zu denen unter anderem .NET Framework, .NET Core und Xamarin gehören. Verwenden Sie dieses Tag für Fragen zu Code, der in der formalen Spezifikation von C # oder C # geschrieben ist.