2011-01-06 4 views
0

Hallo ich bin mit Visual Basic Express 2010 und SQL Server 2008 R2 das ist mein Problem ich Datenbank in SQL erstellen, dann verbinde ich mit der Datenbank von Visual Basic. wieDynamisch sql Verbindung

<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections></configSections> <connectionStrings> <add name="WindowsApplication1.My.MySettings.BPdataConnectionString" connectionString="Data Source=.\SQLBAC;AttachDbFilename=G:\SQLSERVER\MSSQL10_50.SQLBAC\MSSQL\DATA\BPdata.mdf;Persist Security Info=True;User ID=sa;Password=martin;Connect Timeout=30;User Instance=False" providerName="System.Data.SqlClient" /> <add name="BPdataEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLBAC;AttachDbFilename=G:\SQLSERVER\MSSQL10_50.SQLBAC\MSSQL\DATA\BPdata.mdf;Persist Security Info=True;User ID=sa;Password=martin;Connect Timeout=30;User Instance=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

alles funktioniert, aber wenn ich es in anderen PC verwenden werden dann Datenbankverzeichnis und SQL Server-Name wird anders sein ... so muss ich Programm fragen, vor dem Start für Servername, Datenbankname ...

Antwort

0

Wenn Sie den Pfad der Datenbankdatei (en) nicht kennen, müssen Sie den Benutzer fragen. Wenn Sie die Datenbankdatei selbst erstellen, sollten Sie den Speicherort kennen. Wenn SQL Server lokal ausgeführt wird, können Sie . für die Quelle verwenden, die auf dem lokalen Computer aufgelöst wird.

Eine Sache, die Sie in AttachDbFilename tun können, ist Start starten mit |DataDirectory| (d. H. AttachDbFilename = | DataDirectory | \ Folder1 \ MyDatabase.mdf) und das wird in das Datenverzeichnis Ihrer Anwendung auflösen; Bei den meisten Winforms-Anwendungen ist dies der Ordner, in dem sich die ausführbare Datei befindet. Bei einigen Technologien (wie ClickOnce) befindet sich das Datenverzeichnis jedoch an einer anderen Position.

HTH

EDIT:

Sollte sich herausstellen Sie die Verbindungszeichenfolge zur Laufzeit bauen müssen, gibt es Klassen im Rahmen, die dabei helfen wird. Die SQL Server-Version wird hier bei MSDN beschrieben: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx

+0

jetzt, wenn ich Datenbank im Programm habe jedes Mal, wenn ich Programm-Datenbank starten, ist klar .... Ich muss Daten nach dem Schließen Programm merken ... Wie kann ich es beheben? – caba11

+0

Ist dies der Fall, wenn Sie es auf Ihrem lokalen Computer entwickeln? Wenn dies der Fall ist, weiß ich nicht, wie Ihre Lösung eingerichtet wird. Wenn Sie jedoch eine leere Kopie der Datenbank in Ihrem Projekt haben, könnte diese bei jedem Kompilieren überschrieben werden. Überprüfen Sie Ihre Kompilierungsoptionen der Datenbankdatei. –