Birbiriyle çok ilişki içeren 2 tablo içeren DataSet'i doldurmaya çalışıyorum.Veri kümesini birden çok tablo ile doldurma?
public DataSet SelectOne(int id)
{
DataSet result = new DataSet();
using (DbCommand command = Connection.CreateCommand())
{
command.CommandText = "select * from table1";
var param = ParametersBuilder.CreateByKey(command, "ID", id, null);
command.Parameters.Add(param);
Connection.Open();
using (DbDataReader reader = command.ExecuteReader())
{
result.MainTable.Load(reader);
}
Connection.Close();
}
return result;
}
Ama sadece bir masa dolar var: Bunu başarmak için DataReader kullanıyorum. Hedefime nasıl ulaşırım - her iki tabloyu da doldurun mu?
Mümkünse DataAeader yerine DataAdapter kullanmak istiyorum. http://msdn.microsoft.com/en-us/library/system.data.idatareader.nextresult.aspx
Ben feryat görünebilir göstermek:
public DataSet SelectOne(int id)
{
DataSet result = new DataSet();
using (DbCommand command = Connection.CreateCommand())
{
command.CommandText = @"
select * from table1
select * from table2
";
var param = ParametersBuilder.CreateByKey(command, "ID", id, null);
command.Parameters.Add(param);
Connection.Open();
using (DbDataReader reader = command.ExecuteReader())
{
result.MainTable.Load(reader);
reader.NextResult();
result.SecondTable.Load(reader);
// ...
}
Connection.Close();
}
return result;
}
Neden iki tablo dolmasını beklersiniz? Komutunuz sadece tek bir tablo döndüren tek bir 'select' ifadesi içerir. –
Neden "DbCommand" yerine "SqlDataAdapter" ve "Fill (...)" yöntemini kullanmıyorsunuz? – bluevector
@Nikola Anusev - Biliyorum, bu yüzden sadece –