Язык: C# БД: Доступ (Итак, OleDbDataAdapter)
Контекст:
В моем текущем проекте я создаю своего рода построитель запросов sql. В зависимости от того, что пользователь выбирает из раскрывающегося списка, команда sql может выглядеть так, не уверен, что она имеет отношение к вопросу, хотя [] являются столбцами/таблицей () являются раскрывающимися опциями, круглых скобок на самом деле нет:
Select * From [db] where [Date] (between) @value1 and @value2 AND [ID] (=) @ID AND [Usd] (=) @Usd
Ну, вы поняли идею.
Я запускаю это через следующий код:
sbuilder = new StringBuilder();
sbuilder.Append("Select * FROM ").Append(Current_Table).Append(" WHERE ");
using (OleDbConnection connection = new OleDbConnection(Con))
{
connection.Open();
string query = sbuilder.ToString();
OleDbDataAdapter da = new OleDbDataAdapter(query, connection);
da.SelectCommand.Parameters.Clear();
//some code to build the string, AND build the select parameters, here's the important one though
da.SelectCommand.Parameters.AddWithValue("@USD", Convert.ToDouble(FilterUSD.Text));
DataTable dt = new DataTable();
da.Fill(dt);
DGVMain.DataSource = dt;
connection.Close();
}
Моя проблема:
Когда я получаю значения, как вы ожидаете, они должны соответствовать значению FilterUSD.Text, поэтому, когда пользователь ищет 12, а БД содержит 12,31251, он вернет 0 строк. Как мне сделать так, чтобы, когда параметр равен 12, он возвращал все значения, которые имеют базовое значение 12 и любые последующие десятичные значения. Примеры, которые я просмотрел в Интернете, похоже, предлагают использовать средство чтения данных sql и извлекать значения в переменную Double.
Как мне действовать в контексте использования адаптера данных, который я использую в настоящее время, для заполнения таблицы данных? (и позже, datagridview)
Я подозреваю, что мне придется использовать параметры моей команды выбора.
Нашел эту ссылку, я не знаю, как преобразовать ее для моего использования в качестве таблицы данных: Читать десятичный из базы данных SQL Server