Pergunta

Quando eu começar a minha candidatura eu recebo:. A propriedade ConnectionString não foi inicializado

Web.config:

<connectionStrings>
    <add name="MyDB"
         connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>

A pilha sendo:

System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122

Eu sou bastante novo para .NET e eu não receber um presente. Eu encontrei um monte de respostas no Google, mas nenhum realmente fixa o meu problema.

O que isso significa? É o meu web.config ruim? É minha função ruim? É minha configuração SQL não está funcionando corretamente (estou usando sqlexpress)?

O meu principal problema aqui é que eu não tenho certeza por onde começar a depurar isso ... nada ajudaria.

EDIT:

código failling:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);

SQLQuery é uma consulta como "* select da tabela". sqlParams não é relevante aqui.

O outro problema aqui é que a minha empresa utiliza MySQLHelper, e eu não têm visibilidade sobre ele (só tem uma dll para uma lib helper). Tem sido muito bem trabalhando em outros projetos, então eu sou 99% que o erro não vem aqui.

Eu acho que se não há nenhuma maneira de debuging sem ver o código eu vou ter que esperar para entrar em contato com a pessoa que criou esse auxiliar, a fim de obter o código.

Foi útil?

Solução

Fazendo referência a seqüência de conexão deve ser feito como tal:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);

ConfigurationManager.AppSettings["ConnectionString"] estaria procurando na AppSettings por algo chamado ConnectionString, que não iria encontrar. É por isso que a sua mensagem de erro indicada a "ConnectionString" property has not been initialized, porque ele está à procura de uma propriedade inicializado de AppSettings ConnectionString nomeado.

instrui ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString para procurar a cadeia de conexão com o nome "MyDB".

Aqui está alguém falando sobre o uso de seqüências de conexão web.config

Outras dicas

Você recebe este erro quando uma fonte de dados tentativas de vincular a dados, mas não pode porque ele não pode encontrar a seqüência de conexão. Na minha experiência, isso não é geralmente devido a um erro no web.config (embora eu não estou 100% de certeza disso).

Se você estiver atribuindo programaticamente uma fonte de dados (como um SqlDataSource) ou a criação de uma consulta (ou seja, usando um SqlConnection / SqlCommand combinação), certifique-se de que lhe é atribuído um ConnectionString.

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;

Se você ligar um elemento de ligação de dados a uma fonte de dados (ou seja, um GridView ou ComboBox a um SqlDataSource), certifique-se a fonte de dados é atribuído a um de seus seqüências de conexão.

Post seu código (para o elemento de ligação de dados e o web.config para ser seguro) e podemos dar uma olhada nisso.

EDIT: Eu acho que o problema é que você está tentando obter a seqüência de conexão da área de AppSettings, e programática que não é onde ele existe. Tente substituir isso com ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString (se ConnectionString é o nome da sua cadeia de conexão.)

A seqüência de conexão é não na AppSettings .

O que você está procurando em:

System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]...

Uso [] em vez de () abaixo como exemplo.

SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString);
            DataTable data = new DataTable();
            DataSet ds = new DataSet();

Simplesmente no código por trás uso Página: -

SqlConnection con = new SqlConnection("Data Source = DellPC; Initial Catalog = Account; user = sa; password = admin");

Ele deve funcionar muito bem

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top