Наполнить массив, многомерными объектами
У меня есть такая часть кода: получаю с базы данных строки, с первого столбца необходимо получить значения Start, со второго End и обьединить в обьект, переходя к следующей строке тоже самое. Не понимаю, как выполнить цикл, чтобы наполнить массив.
public static Productions[] GetProductions () {
string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=PressShop.accdb";
using ( var connection = new OleDbConnection (ConnectionString) ) {
connection.Open ();
using ( var sqlComommand = new OleDbCommand ("select * FROM ref_summary", connection) ) {
sqlComommand.ExecuteNonQuery ();
var dataAdapter = new OleDbDataAdapter (sqlComommand);
var dataSet = new DataSet ();
dataAdapter.Fill (dataSet, "ref_summary");
var i = dataSet.Tables[0].Rows.Count;
var results = new Productions[i];
foreach ( DataRow dr in dataSet.Tables[0].Rows ) {
results.Append (new Productions () { Start = dr[1].ToString (), End = dr[2].ToString () });
}
Console.WriteLine (results.Length);
}
}
}
Необходимо наполнить массив из цикла и на выходе получить это. В примере только 3 обьекта, но их там может быть 10к и выше.
var result = new Productions[]
{
new Productions () { Start = "...", End = "..." },
new Productions () { Start = "...", End = "..." },
new Productions () { Start = "...", End = "..." }
...
};
Console.WriteLine (result);
//Press_Shop_NMGR.Data.Productions[]
return result;
Ответы (1 шт):
Тут пишут, мол "зачем датасет", и что "достаточно дататейбл".
Так вот, дело в том, что для таких задачь вообще лучше использовать датаридер. И не только для таких. Забудьте про датасеты и дататаблы - это уже устаревшая, "тяжелая" модель работы с данными. Используйте датаридеры, а для моделей данных лучше вообще использовать ORM вроде Entity Framework.