Есть ли какой-либо индикатор, который бы знал, что OleDbDataAdapter получил записи или нет на основе предоставленного запроса? - PullRequest
1 голос
/ 19 апреля 2019

У меня есть текстовое поле, где пользователь может ввести идентификатор продукта и на основе этого заполненного gridview. У меня есть все продукты в моем файле Excel и используя OleDbConnection и OleDbDataAdapter я заполняю свою таблицу данных, которая связана с gridview using BindingSource.

Можно ли получить какой-либо индикаторный продукт найден или нет (проверка на ноль или подсчет) в OleDbDataAdapter перед заполнением данными?

Код:

string fieldSelector = "[ProductID], [ProductName],[MRP]";
string query = $"SELECT {fieldSelector} FROM [{sheetName}$A1:Q15535] WHERE [ProductID] = {Convert.ToInt32(txtProductId.Text)}";
using (OleDbConnection cnnxls = new OleDbConnection(strConn))
using (OleDbDataAdapter oda = new OleDbDataAdapter(query, cnnxls))
{
     oda.Fill(dtProductList);//dtProductList global variable at winform level
}

Допустим, я уже добавил 2 продукта, и теперь я вхожу в продукт, который не найден в Excel, и снова мне, возможно, придется заглянуть внутрь таблицы данных и на основании этого показанного сообщения пользователю, что "Продукт не найден".

1 Ответ

0 голосов
/ 19 апреля 2019

Вам нужно будет сделать OleDbCommand.ExecuteScalar вызов, чтобы найти количество возвращенных записей.Возможно, вам придется изменить fieldSelector на «count (*)» при использовании ExecuteScalar

...