У меня есть список строк, которые являются просто номерами счетов.Я перечисляю этот список, чтобы получить подробную информацию о каждом счете из базы данных.Этот список может быть размером от 700 до 1000.То, как я это делаю сейчас, приводит к 700-1000 подключений к базе данных.это занимает слишком много времени, чтобы завершить, есть ли лучший способ сделать это, о котором я просто не знаю?Любые указатели были бы хорошими.
вот пример моего перечисления
foreach(string i in invoiceList)
{
Invoice inv = invoiceData.GetInvoice(i);
//do something with the invoice
}
тогда вот пример моего метода доступа к данным с использованием ado.net
public Invoice GetInvoice(string invoice)
{
SqlConnection con = new SqlConnection(//connection string);
SqlCommand cmd = new SqlCommand("dbo.getInvoices", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("invoice", SqlDbType.VarChar).Value = invoice;
SqlDataReader dr;
Invoice inv = new Invoice();
try{
con.Open();
dr = cmd.ExecuteReader
while(dr.read())
{
//assign values from the database fields
}
}
catch{}
finally{con.close();}
}
так что в основном метод getInvoice вызывается 1000 раз, каждый раз открывая новое соединение.Что является лучшим (более быстрым) способом сделать это.Спасибо!