2016-07-10 6 views
0

からSqlConnectionオブジェクトへのアクセス、私は今、私はメインウィンドウにボタン

sqlConnection conn = new SqlConnection(); 
InitializeComponent(); 

conn.ConnectionString = "Data Source=servername;" + 
         "Initial Catalog=database;" + 
         "Integrated Security=True;"; 

を得、これを明確に説明しようと、私は、コマンド

SqlCommand scom = new SqlCommand(query, conn); 

ボタンがクリックされた

を発射したいです、それはボタンが connを見ることができない今、愚かな質問ですMainWindowにあるので、どのように私はそれにアクセスできますか?

ボタンをクリックするたびに接続を再設定したくないということです。

+0

ようconnプロパティにアクセス

Window parentWindow = Application.Current.MainWindow 

または直接の親ウィンドウ

Window parentWindow = Window.GetWindow(this); 

をそれが範囲内にあるかどうかを判断することはできませんが、あなたの記述は 'conn'がクラスで取り消されることを意味します(windo w)レベルなので、なぜボタンイベントはそれを "見る"ことができないのですか?ボタンは別のウィンドウにありますか? – Crowcoder

+1

あなたはdb接続用のクラスを1つ作成し、それがベストプラクティスであることを望むときにクラスファイルを呼び出します。 – SK2185

答えて

1

これは、ルートレベルウィンドウを取得:あなたはコンテキストを示していないので、この

if(parentwindow.conn != null) 
{ 
    SqlCommand scom = new SqlCommand(query, parentwindow.conn); 
}