Я уже некоторое время занимаюсь разработкой приложений для небольших баз данных в Visual Studio C #. В настоящее время я использую VS 2010. До недавнего времени все приложения работали на том же компьютере, на котором хранилась база данных, и все работало отлично. Недавно мне пришлось приступить к разработке некоторых приложений, которые будут работать на отдельном компьютере в той же локальной сети.
Достаточно просто, но я сталкиваюсь с проблемой при выполнении запросов для заполнения элементов управления, таких как сетка или даже поле со списком. Проблема в том, что на каждый элемент управления может потребоваться 15-30 секунд, если мой запрос извлекает большой объем данных. Я знаю, что это потому, что приложение отправляет мой запрос на выборку, ожидает, когда все результаты появятся в сети, и затем отображает информацию. Проблема в том, что я не знаю, что с этим делать.
Ниже у меня есть фрагмент кода (немного измененный, чтобы иметь больше смысла). Он использует базу данных Firebird, хотя я использую MSSQL и Sybase Advantage, а также с теми же результатами.
FbConnection fdbConnect = new FbConnection();
fdbConnect.ConnectionString = Program.ConnectionString;
fdbConnect.Open();
FbCommand fcmdQuery = new FbCommand();
fcmdQuery.Connection = fdbConnect;
fcmdQuery.CommandText = "select dadda.name, yadda.address, yadda.phone1 from SOMETABLE left join yadda on dadda where yadda.pk = dadda.yaddapk";
FbDataAdapter fdaDataSet = new FbDataAdapter(fcmdQuery);
DataSet dsReturn = new DataSet();
fdaDataSet.Fill(dsReturn);
fdbConnect.Close();
DataGridView1.DataSource = dsReturn.Tables[0];
У кого-нибудь есть предложения, как мне это ускорить?