2017-07-03 6 views
-1

私は多くを検索しましたが、適切な解決策を見つけることができませんでした。mysqlはデータセットへのjoinとcでのデータテーブルを選択#

using(MySqlConnection connection = new MySqlConnection(MyConnectionString)) 
using(MySqlCommand cmd = connection.CreateCommand()) 
{ 
    connection.Open(); 
    cmd.CommandText = "SELECT a.Id, a.Foo, b.Bar FROM tableA a, tableB b where a.Id = b.Id"; 
    MySqlDataAdapter da = new MySqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    DataTable dt = ds.Tables[...]; //<== here is the problem 

} 

と私はこのケースでは、テーブルを呼び出すにはどうすればよいのDataTable、

にこれを追加する:

のような病気の選択データを言うことができますか?

tableAですか?

名前はどういう意味ですか?(私は???それは同様foobarに名前を付けることができ)

+0

普通の質問ですが、これをコメントすることはできません。私はこの質問がなぜ閉鎖されるべきなのかわかりません^^ – Dwza

+0

あなたはこの文脈で何でもそれを名付けることができます。 –

答えて

1

あなたが本当にを求めたが、コメントと明確化の長さのために、答えの中に入れているものは不明です。

複数のクエリ結果をMySQLから単一の「データセット」(複数のテーブルを含むことができる)に戻そうとすると、クエリに複数のSQL文が含まれ、それぞれが別のものとしてデータセットに返されますテーブル結果。たとえば、あなたが何かなどを行った場合...

using(MySqlConnection connection = new MySqlConnection(MyConnectionString)) 
using(MySqlCommand cmd = connection.CreateCommand()) 
{ 
    connection.Open(); 
    cmd.CommandText = 
@"select * from TableA; 

select * from TableB; 

SELECT a.Id, a.Foo, b.Bar FROM tableA a, tableB b where a.Id = b.Id;"; 

    MySqlDataAdapter da = new MySqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
} 

提供クエリの直接的な相関関係で、その中に3つのテーブルを持っているでしょうあなたのデータセット..

ds.Tables[0] = result of tableA all records. 
ds.Tables[1] = result of tableB all records. 
ds.Tables[2] = result of JOIN query tableA and tableB. 

あなたはその後、ローカルしかし、それらを参照することができますあなたは

ds.Tables[0].TableName = "anyLocalTableNameReference". 
var t1Recs = ds.Tables[0].Rows.Count; 

等...する必要が...、あるいは明示的にデータセットとテーブル配列リファレンスを参照することなく、ご自身の個々のDataTableの変数名を作成

DataTable myLocalTableA = ds.Tables[0]; 
DataTable myLocalTableB = ds.Tables[1]; 
DataTable myJoinResult = ds.Tables[2]; 

これにより、返された複数のデータ結果の照会および参照、および個々のテーブルへの参照方法が明確になります。

+0

なぜ私は何が欲しいのですか?私は定期的な質問があり、私が使っているステートメントも短く、参加を示しているということです。とにかく...私はこのような権利を得る場合、私は配列のように選択することができますか?!?! – Dwza

+0

テーブル名 'ds.Tables [0] .TableName =" foobar "'を設定すると、 'DataTable dt = ds.Tables ['foobar'];'のようなdatatableに設定できます。 – Dwza

関連する問題