2016-08-28 4 views
0

if/elseステートメント内のDataSetをCLONEする方法を知りたいのですが、ボタンを使ってクエリの検索をトリガーしたいのですが、次にそのデータをクローンデータセット(正確な構造があり、テーブルリレーションが含まれています)に入れて検索データをフォームに正しく表示します。コードは次のとおりです。C#if/elseステートメント内でデータセットをクローズする方法

private void btn_Click(object sender, EventArgs e) 
{ 

    OdbcConnection conn = new OdbcConnection(); // A connection string... 

    if (whatever) 
    { 
     whatever 
    } 
    else 
    { 
     OdbcDataAdapter SearchData = new OdbcDataAdapter(); //Query string... 

     //now i need to clone a existing DataSet 

     DataSet cloneSet = dataSet.Clone(); 

     //Then fill it with dat from query 

     SearchData.Fill(cloneSet); 
    } 
} // end of button click event 

これを行う方法はありますか?前もって感謝します。

+0

既存のデータセットはリモートデータベースです。それは動作しません。 –

答えて

0

これを行う方法はありますか?

はい、あなたは既にそれをやっています。 Clone()メソッドはまったく同じことを行います。既存のスキーマを持つ既存のデータセットから新しいデータセットを作成します。だからあなたの場合には、ラインcloneSetの下dataSet

DataSet cloneSet = dataSet.Clone(); 

を既存のものと同じ構造を持つことになります。しかし、なぜあなたは、既存のデータセットを使用することはできませんか?なぜそれを複製するのですか?さらに、cloneSetは、イベントハンドラの範囲外で使用することはできません。ボタンクリックイベントハンドラの外側で使用する場合は、グローバルに宣言することをお勧めします。

+0

問題は、コードが機能しないことです。 .Clone()メソッドはif/elseまたはbtn_clickイベントの内部からでも呼び出すことはできないようです。自分自身を試してください。私はX条件の下でのみdataseをクローンしたいので、私はclickイベントとif/else文の中で行う必要があります。 –

+0

@FranMontserrat、そうであってはいけません。電話中に何のエラーがありますか? – Rahul

+0

.Fill(cloneset)を使用すると、cloneetはまだ空です。私は私のフォームbindingSource.Datasourceとしてそのクローンセットを使用しているので、私は知っていると値を返しません。 –

関連する問題