var connection = ConnectionFactory.GetConnection(
ConfigurationManager.ConnectionStrings["Test"]
.ConnectionString, DataBaseProvider);
A to moja App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Ale kiedy mój projekt się uruchamia, to jest mój błąd:
Odwołanie do obiektu nie jest ustawione na instancję obiektu.
c#
ado.net
exception-handling
connection-string
app-config
Moham ad Jafari
źródło
źródło
Odpowiedzi:
Czy nie możesz po prostu wykonać następujących czynności:
Twój zespół wymaga również odniesienia do
System.Configuration.dll
źródło
System.Configuration.ConfigurationManager.ConnectionStrings("Test").ConnectionString
dla tych z nas, którzy muszą zachować kod VBPonieważ jest to bardzo częste pytanie, przygotowałem kilka zrzutów ekranu z programu Visual Studio, aby ułatwić wykonanie 4 prostych kroków.
źródło
using System.Configuration
nadal działaźródło
<connectionStrings>
elementy z app.config (o co prosi OP!).Sprawdź także, czy
System.Configuration
pod odnośnikami umieściłeś bibliotekę DLL. Bez niego nie będziesz mieć dostępu doConfigurationManager
klasy w przestrzeni nazw System.Configuration.źródło
Najpierw dodaj odniesienie
System.Configuration
do swojej strony.Następnie Zgodnie z app.config pobierz ciąg połączenia w następujący sposób.
To wszystko, teraz masz ciąg połączenia w ręce i możesz go użyć.
źródło
źródło
Wypróbuj to
źródło
1) Utwórz nowy formularz i dodaj go:
kiedy chcesz użyć połączenia, zrób to w swojej formie:
i to wszystko. Zostaniesz podłączony do bazy danych i będziesz mógł robić różne rzeczy.
Dotyczy to vb.net, ale logika jest taka sama.
źródło
Czy próbowałeś:
źródło
Miałem ten sam problem. moje rozwiązanie zostało zbudowane z dwóch projektów. A
Class library
oraz strona internetowa odnosząca się do projektu biblioteki klas. Problem polegał na tym, że próbowałem uzyskać dostęp doApp.config
mojegoClass library
projektu, ale system przeszukiwałWeb.config
witrynę. Wstawiłem ciąg połączeniaWeb.config
i ... problem rozwiązany!Głównym powodem było to, że pomimo
ConfigurationManager
użycia w innym zestawie, szukał w projekcie runnig.źródło
Możesz użyć tej metody, aby uzyskać parametry połączenia
źródło
źródło
Najpierw musisz dodać
System.Configuration
odniesienie do swojego projektu, a następnie użyć poniższego kodu, aby uzyskać parametry połączenia.źródło
To działało dla mnie:
Wyjścia:
źródło
Możesz pobrać parametry połączenia, używając poniższego wiersza kodu -
Oto odniesienie: ciąg połączenia z App.config
źródło
Wygląda na to, że problem nie dotyczy odniesienia, otrzymujesz ciąg połączenia jako zerowy, więc upewnij się, że dodałeś wartość do pliku konfiguracyjnego twojego uruchomionego projektu, co oznacza, że główny program / biblioteka jest uruchamiana / uruchamiana jako pierwsza.
źródło
Możliwe, że OP w tym pytaniu próbuje użyć App.Config w bibliotece dll.
W tym przypadku kod faktycznie próbuje uzyskać dostęp do App.Config pliku wykonywalnego, a nie dll. Ponieważ nie znaleziono nazwy, zwracana jest wartość Null, stąd pokazany wyjątek.
Pomocny może być następujący post: ConnectionString z app.config DLL jest pusty
źródło
Odwołałem się do
System.Configuration
biblioteki i mam ten sam błąd. Pliki debugowania nie miały pliku app.config, utwórz ręcznie ten plik. Błąd polega na tym, że rozwiązałem to kopiowanie pliku „appname.exe.config” w folderze debugowania. IDE nie utworzyło pliku.źródło
Rozwiązałem problem, używając indeksu do odczytu łańcucha i sprawdzając jeden po drugim. Czytanie przy użyciu nazwy nadal powoduje ten sam błąd.
Mam problem podczas tworzenia aplikacji w oknie C #, nie miałem problemu w mojej aplikacji asp.net. W ustawieniu musi być coś, co jest nie tak.
źródło