2013-01-04 31 views
0

我正在構建一個C#應用程序,並且發生了一個問題,我不知道如何解決它。表單繼承之後ConnectionString錯誤?

我有幾個表單,現在我想添加一個被另一個表單繼承的表單。當我想要查看的新形式的[設計]畫面,它給了我下面的錯誤:

Object reference not set to an instance of an object.

現在我發現這個問題是連接字符串,其位於app.config文件:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="ConnString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=PVB;Integrated Security=True" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 

這是我在C#中的connectionString代碼:

string connectionString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString; 

如果我使用字符串像一個以上,我得到的Object Reference blabla錯誤。令人驚奇的是,當我使用下面的代碼,形式只是工作完全正常:

string connectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=PVB;Integrated Security=True"; 

有沒有人有一個線索,我怎樣才能解決這個問題?是的,我已將System.Configuration參考添加到解決方案中,所以這不是問題,我猜...

+0

運行代碼時,你得到任何錯誤?還是隻在設計模式?僅供參考「Object Reference blabla」錯誤是一個NullReferenceException。 – Fermin

+0

@Fermin我只在設計模式下獲得它,當我運行它時,它工作得很好。 – Marc

回答

2

請檢查以下可能會解決您的問題的URL。看來,這裏的問題是simulair:

access app.config from inherited form

+0

我想這可行,但我仍然想知道爲什麼我不能使用app.config中的ConnectionString,你有解釋嗎? – Marc

+1

從IamKrillin的鏈接中回答:這裏實際發生的事情是,當你將這些東西放到父類中時,構造函數不會被調用。但是,當你做一個子類關係時,它必須被調用。這是視覺工作室構造父類而不是您正在使用的孩子類http://stackoverflow.com/questions/4546311/c-sharp-windows-forms-design-time-form-constructor-not-called –

+0

Didn'噸讀,但我現在得到它,謝謝兄弟! – Marc