Bardzo trudno mi było znaleźć odpowiedź, ale w końcu to rozgryzłem. Napiszę więc poniższe kroki.
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ć.
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.
- 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.