Einrichten der Verbindungszeichenfolge in ASP.NET zu SQL Server


Antworten:


148

Sie können dies auch verwenden, es ist einfacher. Das einzige, was Sie einstellen müssen, ist "YourDataBaseName".

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Wo soll die Verbindungszeichenfolge platziert werden?

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  

Verwendung in meinem C # -Code dahinter, wenn ich eine Abfrage ausführen möchte.
Nikhil Tamhankar

1
Sie können Details Informationen über Verbindungszeichenfolge in
Punktnetz sehen

4
Ich frage mich, wie viele Leute diese Zeile kopiert und eingefügt haben ... :-) Ich denke, dies ist das 30. Mal, dass ich mich mit dieser Frage befasst habe ... vielleicht sollte ich sie einfach auswendig lernen.
Ayo Adesina

In dieser Version fehlen die Attribute Benutzername / Passwort.
Burgi

@ Burgi Nein, das fehlt nicht (siehe das Integrated Security=True?), Es wird nicht benötigt, weil die Datenbank die Datei mit ihren Berechtigungen liest - probieren Sie es aus. Dies ist der Grund, warum ich sage, dass dies einfacher ist, weil Sie sie nicht hinzufügen müssen. Wenn Sie es nicht verwenden, öffnen Sie Ihre Datenbank und legen Sie dort die richtige Berechtigung für Datenbank und Dateien fest
Aristos

107

Aus irgendeinem Grund sehe ich hier keine einfache Antwort.

Fügen Sie dies oben in Ihren Code ein:

using System.Web.Configuration;
using System.Data.SqlClient; 

Fügen Sie dies in Web.Config ein:

<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

und wo Sie die Verbindungsvariable einrichten möchten:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringkönnte technisch korrekter sein.
Crush

2
Ich brauchte auch:using System.Data.SqlClient;
nu everest

21

Ich fand es sehr schwierig, eine Antwort darauf zu bekommen, fand es aber schließlich heraus. Also werde ich die folgenden Schritte schreiben.

  1. 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.

  2. 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.

  1. 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.


14

Es sollte sich innerhalb des <configuration>Knotens befinden:

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

Diese Seite enthält weitere Informationen:


1
Wie man es in meinem C # -Code dahinter verwendet, wenn ich eine Abfrage in asp.net 4 ausführen möchte
Nikhil Tamhankar

7

Verbindung in WebConfig

Fügen Sie dem <connectionStrings>Element in der Web.configDatei Ihre Verbindungszeichenfolge hinzu .

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

In Class.Cs

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

6

im Header

using System.Configuration;

in Code

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

3

Sie können auch eine externe Konfigurationsdatei verwenden, um den Abschnitt mit den Verbindungszeichenfolgen anzugeben und diese Datei in der Anwendungskonfigurationsdatei wie in zu verweisen web.config

Wie die In- web.configDatei:

<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

Die externe Konfigurationsdatei connections.configenthält den Abschnitt "Verbindungen"

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

Durch Ändern des Inhalts einer externen Konfigurationsdatei wird die Anwendung nicht neu gestartet (wie dies bei ASP.net standardmäßig bei Änderungen der Anwendungskonfigurationsdateien der Fall ist).


2

Wenn Sie eine Verbindungszeichenfolge in Web.config schreiben möchten, schreiben Sie unter dem angegebenen Stich

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

ODER

Sie direkt in aspx.cs Datei wie

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

2

Sie können dies in Ihre web.configDatei einfügen connectionStrings:

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

2

Sie können folgendes Format verwenden:

  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Höchstwahrscheinlich werden Sie das Verbindungszeichenfolgen-Tag in web.config nachher eingeben <appSettings>

Probieren Sie das aus.


1

Sie können dies versuchen. Es ist sehr einfach

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>

OP fragte "wo in web.config".
Steve Smith

0

Versuchen Sie dies für Ihre Verbindungszeichenfolge.

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;

Willkommen bei Stack Overflow! Wenn Sie eine Antwort auf eine alte Frage posten, ist es gut, einen Kontext hinzuzufügen, warum Ihre Antwort besser ist als die alten. Andernfalls besteht die Gefahr, dass sie am Ende der Liste der Antworten übersehen werden.
Monolo

0

ICH HABE GERADE GEFUNDEN!! Sie müssen diese Zeichenfolgenverbindung herstellen und direkt auf Ihre Datenbank verweisen . Gleicher Fall auf dem Server.

"Provider=Microsoft.ACE.OLEDB.12.0; 
 Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"

Es klappt!! :) :)


0

Speichern Sie die Verbindungszeichenfolge in web.config

Es wird empfohlen, die Verbindungszeichenfolge für Ihre Anwendung in einer Konfigurationsdatei und nicht als fest codierte Zeichenfolge in Ihrem Code zu speichern. Die Vorgehensweise unterscheidet sich zwischen .NET 2.0 und .NET 3.5 (und höher). Dieser Artikel behandelt beide. https://www.connectionstrings.com/store-connection-string-in-webconfig/


-1

Erstellen Sie einen Abschnitt, der <connectionStrings></connectionStrings>in Ihrem web.configInneren aufgerufen wird, <configuration></configuration>und fügen Sie ihm beispielsweise verschiedene Verbindungszeichenfolgen hinzu

<configuration>

  <connectionStrings>
   <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
  </connectionStrings>

</configuration>

Hier ist eine Liste aller verschiedenen Verbindungszeichenfolgenformate https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx


"Erstellen Sie in Ihrer web.config einen Abschnitt mit dem Namen <connectionStrings> </ connectionStrings>" - wo in web.config?
Steve Smith

Kind des "Konfigurations" -Tags, weitere Informationen docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
Guy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.