C sharp Access data type mismatch in criteria expression

162
08 ноября 2021, 17:10

Используется код для выборки всех колонок в таблице и дальнейшее применение к каждой функционала update. При этом он на колонки типа integer как я понимаю выдаёт Data type mismatch in criteria expression . Как проверить тип данных до произведения запроса?

DataTable dt = new DataTable();
                using (OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM " + tb_tablename.Text, conn))
                {
                    adapter.Fill(dt);
                }
                foreach (DataColumn column in dt.Columns)
                {
                    if (column.DataType == System.Type.GetType("System.String"))
                    {
                        if (column.ColumnName != "ID1" && column.ColumnName != "ID" && column.ColumnName != "Geometry" && column.ColumnName != "Geometry_SK")
                            using (OleDbCommand cmd = new OleDbCommand("UPDATE " + tb_tablename.Text + " SET " + column.ColumnName + " = Replace([" + column.ColumnName + "], Chr(10), \"\");", conn))
                            {
                                cmd.ExecuteNonQuery();
                            }
                    }
                }

Проверка (column.DataType is string) не отрабатывает. При этом если сделать вывод типа - встречается Int32. Как проверить тип корректно?

Нашёл как проверить корректно if (column.DataType == typeof(String)) но ошибка осталась. С чем может быть связана данная ошибка?

System.Data.OleDb.OleDbException: "Data type mismatch in criteria expression."

Генерируемый запрос без проблем выполняется в самом Access.

Вынос запроса не помог.

string query = "UPDATE [" + tb_tablename.Text.Trim() + "] SET [" + column.ColumnName + "] = Replace([" + column.ColumnName + "], Chr(10), \"\");";
                            using (OleDbCommand cmd = new OleDbCommand(query, conn))
READ ALSO
Как создать ValueObject без инкапсуляции?

Как создать ValueObject без инкапсуляции?

Класс CalculationResult<T> использует инкапсуляцию, чтобы задать контракт:

123
Замена элемента массива, хранящегося в ячейке БД

Замена элемента массива, хранящегося в ячейке БД

У меня в в БД данные хранятся в виде

80
Как поверх pdf вывести надпись на кирилице? tfpdf, fpdi

Как поверх pdf вывести надпись на кирилице? tfpdf, fpdi

Как по нажатию на кнопку в новом pdf вывести дату и содержимое файла filepdf с кирилической записью? Нашел варианты которые работают по отдельности,...

136
PHP Fatal error: Cannot redeclare ihc_init() Как исправить?

PHP Fatal error: Cannot redeclare ihc_init() Как исправить?

Появились ошибки на сайтеПонадобилось при регистрации на сайте загружать изображение, но при попытке загрузить получаю ошибку ERROR: Internal...

108