Несоответствие типов данных в выражении запроса с OleDbCommand

char zoneCH = '-'; 
string insertString = "UPDATE streets set TmpColumn=City+'" + zoneCH + "'+State+'" +zoneCH +"'+Zip WHERE 1"; 
OleDbCommand com1 = new OleDbCommand(insertString, mdbConnection);
com1.ExecuteNonQuery();

Это будет работать, если Zip - это строка, но если Zip - это число, я получаю несоответствие типов данных в выражении запроса. Как я могу заставить его работать с номером?

1 ответ

Решение

Вероятно, потому что он пытается добавить вместо объединения. Разные БД справляются с этим по-разному. Некоторые используют левую сторону, чтобы определить, что делать.

Вы должны явно привести Zip к строке, и тогда у вас все будет хорошо

Однако, поскольку это MS Access, лучше всего использовать & для объединения

string insertString = "UPDATE streets set TmpColumn=City & '" + zoneCH + "'& State &'" +zoneCH +"'& Zip WHERE 1"
Другие вопросы по тегам