2013-07-08 26 views
6

Veritabanını sorgulayan bir Visual Studio 2012 ASP.NET MVC uygulamasına sahibim. Bağlantı dizesini web.config dosyasında tutmanın iyi bir uygulama olduğu söylendi. ConnString denilen bağlantı dizesi bulunur: Ben bağlantı dizesini almak istiyorum C#Visual Studio 2012 ASP.NET MVC Bağlantı Dizeleri Web.Config

<connectionStrings> 
     <add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;"/> 
    </connectionStrings> 

, ben kullanın:

uygulaması bu hat üzerinde ölür ve aşağıdaki istisna atar
String connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString; 

:

Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. 

Ben dahil ettik:

using System.Configuration; 

sayfanın en üstünde, ancak yine de başarısız. using System.WebConfiguration kullanmayı denedim, ancak hala dizeyi alamıyorum. Dizeyi nasıl alabilirim?

+1

Web.config dosyanızda, yapısının altındaki düğümü nedir? –

+0

Yalnızca ConfigurationManager.ConnectionStrings'i deneyin ["ConnString"] ToString() – ckv

+0

@RyanWeir - Evet, bu düğümünün doğrudan bir alt öğesidir. – Jonathan

cevap

2
böyle bağlantı dizesi bir özellik olarak providerName="System.Data.SqlClient" içerecek şekilde web.config dosyasını değiştirin

:

<connectionStrings> 
     <add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
+0

Teşekkürler, sorun aslında yanlış web.config dosyasını kullandığım gerçekti! – Jonathan

1

Sen bağlantı dizesi providerName="System.Data.SqlClient" eklemek için kaçırmıştım.

değiştirme senin CONNECTIONG dize için:

<connectionStrings> 
      <add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" providerName="System.Data.SqlClient" /> 
     </connectionStrings> 

Selamlar

+0

Bu, sağlayıcıyı göz ardı ettiği için ConfigurationManager'ı etkilememelidir.Bu sadece ADO.net tarafından kullanılıyor –

1

Bu soruya cevap vermek yeni bir şey yok ama bazı açıklama vermek istiyorum,

System.Data.SqlClient 

Onun .NET Framework SQL Server için Veri Sağlayıcısı. Web.config dosyasında, SystemNoftware özniteliğinin değeri olarak System.Data.SqlClient olmalıdır. Kullanmakta olduğunuz .NET Framework Veri Sağlayıcısıdır. Bir hata mesajı alıyorsanız neden MySQL ile uygulamasını bağlamak zorunda

o zaman

MySql .Net Connector 

gerekli it'i ama senin durumunda onun eksik de kullanabilir, bu.

Daha fazla bilgiyi (burada) bulabilirsiniz [http://msdn.microsoft.com/en-US/library/htw9h4z3 (v = VS.80) .aspx] Umarım size hangi hatayı daha iyi anlarsınız sen yaptın ve düzeltirsin.

<configuration> 
    <connectionStrings> 
    <add name="Northwind" 
     connectionString="Data Source=Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 
İlgili konular