Используется код для выборки всех колонок в таблице и дальнейшее применение к каждой функционала 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))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Класс CalculationResult<T> использует инкапсуляцию, чтобы задать контракт:
Как по нажатию на кнопку в новом pdf вывести дату и содержимое файла filepdf с кирилической записью? Нашел варианты которые работают по отдельности,...
Появились ошибки на сайтеПонадобилось при регистрации на сайте загружать изображение, но при попытке загрузить получаю ошибку ERROR: Internal...