Konfigurowanie parametrów połączenia w ASP.NET z serwerem SQL

Odpowiedzi:

149

Możesz także tego użyć, to prostsze. Jedyne, co musisz ustawić, to „YourDataBaseName”.

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

Gdzie umieścić parametry połączenia

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  
Aristos
źródło
Jak go używać w moim kodzie C #, gdy chcę wykonać jakieś zapytanie.
Nikhil Tamhankar
1
Możesz zobaczyć szczegółowe informacje o parametrach połączenia w dot net pod
adresem
4
Zastanawiam się, ile osób skopiowało i wkleiło ten wiersz ... :-) Myślę, że to już trzydziesty raz, kiedy zadałem to pytanie ... może powinienem po prostu nauczyć się tego na pamięć.
Ayo Adesina
W tej wersji brakuje atrybutów nazwy użytkownika / hasła.
Burgi
@Burgi Nie, tego nie brakuje (patrz Integrated Security=True?), Nie jest to potrzebne, ponieważ baza danych odczytuje plik według ich uprawnień - spróbuj. To jest powód, dla którego mówię, że jest to prostsze, ponieważ nie musisz ich dodawać. Jeśli nie możesz go użyć, otwórz swoją bazę danych i ustaw w niej odpowiednie uprawnienia, dotyczące bazy danych i plików
Aristos,
107

Z jakiegoś powodu nie widzę tutaj prostej odpowiedzi.

Umieść to na górze swojego kodu:

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

Umieść to w Web.Config:

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

i gdzie chcesz ustawić zmienną połączenia:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
Ray Suelzer
źródło
5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringmoże być bardziej poprawne technicznie.
zmiażdż
2
Potrzebowałem również:using System.Data.SqlClient;
nu everest
21

Bardzo trudno mi było znaleźć odpowiedź, ale w końcu to rozgryzłem. Napiszę więc poniższe kroki.

  1. Przed skonfigurowaniem parametrów połączenia w kodzie upewnij się, że faktycznie masz dostęp do bazy danych. Zacznij od lokalnego zalogowania się do serwera bazy danych przy użyciu programu SSMS (Sql Server Management Studio lub jego odpowiednika w innych bazach danych), aby upewnić się, że masz dostęp przy użyciu wszelkich danych, których zamierzasz użyć.

  2. Następnie (w razie potrzeby), jeśli próbujesz uzyskać dostęp do bazy danych na oddzielnym serwerze, upewnij się, że możesz zrobić to samo w SSMS. Skonfiguruj SSMS na komputerze i upewnij się, że możesz uzyskać dostęp do serwera przy użyciu nazwy użytkownika i hasła do tego serwera bazy danych.

Jeśli nie wykonasz poprawnie powyższych 2, po prostu tracisz czas, ponieważ nie możesz uzyskać dostępu do bazy danych. Może to być spowodowane tym, że skonfigurowany użytkownik jest nieprawidłowy, nie ma włączonego dostępu zdalnego (w razie potrzeby) lub porty nie są otwarte (w razie potrzeby), z wielu innych powodów, ale te są najczęstsze.

Po sprawdzeniu, że możesz uzyskać dostęp do bazy danych za pomocą programu SSMS. Następnym krokiem, aby zautomatyzować proces i uniknąć błędów, jest pozwolić systemowi wykonać pracę za Ciebie.

  1. Uruchom pusty projekt, dodaj swój wybór Linq do SQL lub zestawu danych (EF jest dobry, ale ciąg połączenia jest osadzony w ciągu EF, chcę czystego) i połącz się z bazą danych, korzystając ze szczegółów zweryfikowanych powyżej w kreator łańcuchów przeciw. Dodaj dowolną tabelę i zapisz plik.

Teraz przejdź do konfiguracji sieciowej i magicznie, zobaczysz tam ładne, czyste działające parametry połączenia ze wszystkimi potrzebnymi szczegółami.


{Poniżej znajduje się część starego postu, więc możesz to zignorować, zostawiam to w celach informacyjnych, ponieważ jest to najbardziej podstawowy sposób dostępu do bazy danych tylko z tyłu kodu. Przewiń w dół i kontynuuj od kroku 2 poniżej. }

Załóżmy, że powyższe kroki rozpoczynają się od czegoś podobnego do następującego jako parametrów połączenia w kodzie za:

string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";

Ten krok jest bardzo ważny. Przed wykonaniem poniższych kroków upewnij się, że powyższy format parametrów połączenia działa. Upewnij się, że faktycznie możesz uzyskać dostęp do swoich danych za pomocą jakiejś formy tekstu polecenia sql, który wyświetla niektóre dane z tabeli w etykietach lub tekstach boses lub czymkolwiek, ponieważ jest to najprostszy sposób wykonania ciągu połączenia.

Gdy masz pewność, że powyższy styl działa, czas podjąć kolejne kroki:

1. Wyeksportuj swój literał ciągu (zawartość cudzysłowów, w tym cudzysłowy) do następującej sekcji pliku web.config (w przypadku wielu parametrów połączenia po prostu wykonaj wiele linii:

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

{Powyższe było częścią starego postu, po wykonaniu 3 najważniejszych kroków cały proces zostanie wykonany za Ciebie, więc możesz go zignorować. Zostawiam to tutaj do własnego użytku. }


2. Teraz dodaj następujący wiersz kodu do znajdującego się za nim kodu C #, najlepiej tuż pod definicją klasy (tj. Nie wewnątrz metody). Wskazuje na folder główny projektu. Zasadniczo jest to nazwa projektu. Zwykle jest to lokalizacja pliku web.config (w tym przypadku mój projekt nazywa się MyProject.

static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");

3. Teraz dodaj następujący wiersz kodu do znajdującego się za nim kodu C #. Ustawia to stałą łańcuchową, do której możesz odwoływać się w wielu miejscach w kodzie, jeśli potrzebujesz conString w różnych metodach.

const string CONSTRINGNAME = "conString";

4. Następnie dodaj następujący wiersz kodu do znajdującego się za nim kodu C #. Pobiera ciąg połączenia z pliku web.config o nazwie conString (ze stałej powyżej)

ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];

5. Na koniec, tam, gdzie pierwotnie miałbyś coś podobnego do tego wiersza kodu:

SqlConnection con = new SqlConnection(conString)

zastąpisz go tym wierszem kodu:

SqlConnection con = new SqlConnection(conString.ConnectionString)

Po wykonaniu tych 5 kroków Twój kod powinien działać tak jak wcześniej. Zwróć uwagę na powód, dla którego najpierw testujesz zwężenie w jego oryginalnym formacie, aby wiedzieć, czy jest to problem z parametrami połączenia, czy też z kodem.

Jestem nowy w C #, ASP.Net i Sql Server. Jestem więc pewien, że musi istnieć lepszy sposób wykonania tego kodu. Byłbym również wdzięczny za opinie na temat ulepszania tych kroków, jeśli to możliwe. Wszędzie szukałem czegoś takiego, ale w końcu doszedłem do tego po wielu tygodniach ciężkiej pracy. Patrząc na to, wciąż myślę, że musi być łatwiejszy sposób.

Mam nadzieję, że to jest pomocne.

Francis Rodgers
źródło
14

powinien znajdować się w <configuration>węźle:

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

ta strona zawiera więcej informacji na ten temat:

derek
źródło
1
Jak używać go w moim kodzie C #, gdy chcę wykonać zapytanie w asp.net 4
Nikhil Tamhankar
7

Połączenie w konsoli WebConfig

Dodaj parametry połączenia do <connectionStrings>elementu w Web.configpliku.

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

W Class.Cs

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}
samir
źródło
6

w nagłówku

using System.Configuration;

W kodzie

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);
masoud Cheragee
źródło
3

Możesz również użyć zewnętrznego pliku konfiguracyjnego, aby określić sekcję parametrów połączenia i odnieść się do tego pliku w pliku konfiguracyjnym aplikacji, tak jak w web.config

Podobnie jak w web.configpliku:

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

Zewnętrzny connections.configplik konfiguracyjny będzie zawierał sekcję połączeń

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

</connectionStrings>  

Modyfikacja zawartości zewnętrznego pliku konfiguracyjnego nie spowoduje ponownego uruchomienia aplikacji (tak jak domyślnie robi to ASP.net przy każdej zmianie w plikach konfiguracyjnych aplikacji)

Surjit SD
źródło
2

Jeśli chcesz zapisać parametry połączenia w Web.config, napisz pod podanym żądaniem

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

LUB

masz rację w pliku aspx.cs, takim jak

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");
Krishna Patel
źródło
2

Możesz umieścić to w swoim web.configpliku connectionStrings:

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
Aditya
źródło
2

Możesz użyć następującego formatu:

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

Najprawdopodobniej później znajdziesz tag connectionstring w pliku web.config <appSettings>

Wypróbuj to.

C Ostrzejszy
źródło
1

Możesz tego spróbować. To bardzo proste

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>
Animesh Kumar Ghosh
źródło
OP zapytał „gdzie w web.config”.
Steve Smith,
0

Spróbuj tego dla parametrów połączenia.

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;
Santosh Wavare
źródło
Witamy w Stack Overflow! Kiedy piszesz odpowiedź na stare pytanie, dobrze jest dodać kontekst, dlaczego Twoja odpowiedź jest lepsza od starej. W przeciwnym razie istnieje ryzyko przeoczenia na dole listy odpowiedzi.
Monolo
0

WŁAŚNIE ZNALAZŁEM!! Musisz umieścić to połączenie łańcuchowe i wskazać bezpośrednio na bazę danych . Ten sam przypadek na serwerze.

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

To działa!! :)

Dedeco
źródło
0

Przechowuj parametry połączenia w web.config

Dobrą praktyką jest przechowywanie parametrów połączenia dla aplikacji w pliku konfiguracyjnym, a nie jako zakodowany na stałe ciąg w kodzie. Sposób, w jaki można to zrobić, różni się w przypadku .NET 2.0 i .NET 3.5 (i nowszych). Ten artykuł dotyczy obu. https://www.connectionstrings.com/store-connection-string-in-webconfig/

Markoni
źródło
-1

Utworzyć sekcję <connectionStrings></connectionStrings>w swoim web.configwnętrzu <configuration></configuration>następnie dodać różne ciągi połączeń do niej, na przykład

<configuration>

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

</configuration>

Oto lista wszystkich różnych formatów parametrów połączenia https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

Chłopak
źródło
„Utwórz sekcję o nazwie <connectionStrings> </connectionStrings> w swoim web.config” - gdzie w web.config?
Steve Smith,
Dziecko tagu „configuration”, więcej informacji docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
Guy