Ich fand es sehr schwierig, eine Antwort darauf zu bekommen, fand es aber schließlich heraus. Also werde ich die folgenden Schritte schreiben.
Stellen Sie vor dem Einrichten Ihrer Verbindungszeichenfolge im Code sicher, dass Sie tatsächlich auf Ihre Datenbank zugreifen können. Beginnen Sie natürlich damit, sich lokal mit SSMS (SQL Server Management Studio oder in anderen Datenbanken gleichwertig) beim Datenbankserver anzumelden, um sicherzustellen, dass Sie über die von Ihnen beabsichtigten Details Zugriff haben.
Wenn Sie (falls erforderlich) versuchen, auf einem separaten Server auf die Datenbank zuzugreifen, stellen Sie als Nächstes sicher, dass Sie dies auch in SSMS tun können. Richten Sie also SSMS auf einem Computer ein und stellen Sie sicher, dass Sie mit dem Benutzernamen und dem Kennwort auf diesen Server zugreifen können.
Wenn Sie die obigen 2 nicht richtig verstehen, verschwenden Sie einfach Ihre Zeit, da Sie nicht auf die Datenbank zugreifen können. Dies kann unter anderem daran liegen, dass der von Ihnen eingerichtete Benutzer falsch ist, keinen Remotezugriff aktiviert hat (falls erforderlich) oder dass die Ports nicht geöffnet sind (falls erforderlich), unter anderem aus den am häufigsten auftretenden Gründen.
Sobald Sie überprüft haben, dass Sie mit SSMS auf die Datenbank zugreifen können. Der nächste Schritt, nur um den Prozess zu automatisieren und Fehler zu vermeiden, besteht darin, das System die Arbeit für Sie erledigen zu lassen.
- Starten Sie ein leeres Projekt, fügen Sie Linq zu SQL oder Dataset hinzu (EF ist gut, aber die Verbindungszeichenfolge ist in eine EF-Con-Zeichenfolge eingebettet, ich möchte eine saubere), und stellen Sie mithilfe der oben in angegebenen Details eine Verbindung zu Ihrer Datenbank her der Con String Wizzard. Fügen Sie eine beliebige Tabelle hinzu und speichern Sie die Datei.
Gehen Sie jetzt in die Webkonfiguration und auf magische Weise sehen Sie dort eine schöne, sauber funktionierende Verbindungszeichenfolge mit allen Details, die Sie benötigen.
{Unten war ein Teil eines alten Beitrags, damit Sie dies ignorieren können. Ich überlasse ihn als Referenz, da dies die grundlegendste Möglichkeit ist, nur mit Code auf die Datenbank zuzugreifen. Bitte scrollen Sie nach unten und fahren Sie mit Schritt 2 fort. }}
Nehmen wir an, die obigen Schritte beginnen mit etwas wie dem folgenden als Verbindungszeichenfolge im Code dahinter:
string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";
Dieser Schritt ist sehr wichtig. Stellen Sie sicher, dass das obige Format der Verbindungszeichenfolge funktioniert, bevor Sie die folgenden Schritte ausführen. Stellen Sie sicher, dass Sie tatsächlich mit einer Form von SQL-Befehlstext auf Ihre Daten zugreifen können, der einige Daten aus einer Tabelle in Beschriftungen oder Textboses oder was auch immer anzeigt, da dies die einfachste Möglichkeit ist, eine Verbindungszeichenfolge zu erstellen.
Sobald Sie sicher sind, dass der oben genannte Stil funktioniert, ist es jetzt an der Zeit, die nächsten Schritte auszuführen:
1. Exportieren Sie Ihr Zeichenfolgenliteral (das Material in den Anführungszeichen, einschließlich der Anführungszeichen) in den folgenden Abschnitt der Datei web.config (für mehrere Verbindungszeichenfolgen führen Sie einfach mehrere Zeilen aus:
<configuration>
<connectionStrings>
<add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
{Das Obige war Teil eines alten Beitrags. Nachdem Sie die ersten drei Schritte ausgeführt haben, wird der gesamte Vorgang für Sie ausgeführt, sodass Sie ihn ignorieren können. Ich lasse es einfach hier als meine eigene Referenz. }}
2. Fügen Sie nun die folgende Codezeile zum dahinter liegenden C # -Code hinzu, vorzugsweise direkt unter der Klassendefinition (dh nicht innerhalb einer Methode). Dies zeigt auf den Stammordner Ihres Projekts. Im Wesentlichen ist es der Projektname. Dies ist normalerweise der Speicherort der Datei web.config (in diesem Fall heißt mein Projekt MyProject.
static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");
3. Fügen Sie nun die folgende Codezeile zum dahinter liegenden C # -Code hinzu. Dadurch wird eine Zeichenfolgenkonstante eingerichtet, auf die Sie an vielen Stellen im gesamten Code verweisen können, falls Sie eine Steuerung mit verschiedenen Methoden benötigen.
const string CONSTRINGNAME = "conString";
4. Fügen Sie als Nächstes die folgende Codezeile zum dahinter liegenden C # -Code hinzu. Dadurch wird die Verbindungszeichenfolge aus der Datei web.config mit dem Namen conString abgerufen (von der obigen Konstante).
ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];
5. Schließlich, wo Sie ursprünglich etwas Ähnliches wie diese Codezeile gehabt hätten:
SqlConnection con = new SqlConnection(conString)
Sie werden es durch diese Codezeile ersetzen:
SqlConnection con = new SqlConnection(conString.ConnectionString)
Nach diesen 5 Schritten sollte Ihr Code wie zuvor funktionieren. Ermitteln Sie den Grund, warum Sie die Zeichenfolge zuerst in ihrem ursprünglichen Format testen, damit Sie wissen, ob es sich um ein Problem mit der Verbindungszeichenfolge oder um ein Problem mit dem Code handelt.
Ich bin neu in C #, ASP.Net und SQL Server. Ich bin mir also sicher, dass es einen besseren Weg geben muss, diesen Code zu erstellen. Ich würde mich auch über Feedback freuen, wie diese Schritte nach Möglichkeit verbessert werden können. Ich habe überall nach so etwas gesucht, aber ich habe es schließlich nach vielen Wochen harter Arbeit herausgefunden. Wenn ich es mir selbst anschaue, denke ich immer noch, dass es einen einfacheren Weg geben muss.
Ich hoffe das ist hilfreich.