Следующий код вызывает исключение datatype mistmach in criteria expression
. Откуда берется исключение? Сгенерированный запрос работает в Microsoft Access
без проблем.
foreach (DataColumn column in dt.Columns)
{
if (column.DataType == typeof(String))
{
if (column.ColumnName != "ID1" && column.ColumnName != "ID" && column.ColumnName != "Geometry" && column.ColumnName != "Geometry_SK")
{
string query = "UPDATE " + tb_tablename.Text.Trim() + " SET " + column.ColumnName + " = Replace([" + column.ColumnName + "], Chr(10), \"\");";
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.ExecuteNonQuery();
}
}
}
}
Например, сгенерированный код SQL UPDATE Necropolis SET NAME_MR = Replace([NAME_MR], Chr(10), "");
. После его создания выполните команду cmd.ExecuteNonQuery();
Версия параметров показывает Syntax error in query. Incomplete query clause.
.
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE @target SET [@columnname] = Replace([@columnname], Chr(10), '');";
cmd.Parameters.Add(new OleDbParameter("@target", OleDbType.VarChar)).Value = tb_tablename.Text.Trim();
cmd.Parameters.Add(new OleDbParameter("@columnname", OleDbType.VarChar)).Value = column.ColumnName;
MessageBox.Show(cmd.CommandText);
cmd.ExecuteNonQuery();
}
1 ответ
Вы уверены, что query
дает правильный оператор SQL? Я не уверен, но =Replace([xyz], Chr(10), \"\");
не выглядит для меня допустимым оператором SQL... Я думаю, вы должны использовать две отдельные строки для имени столбца:
string col_org = column.ColumnName;
string col_new = column.ColumnName.Replace(Chr(10), "\"");
string query = "UPDATE " + tb_tablename.Text.Trim() + " SET " + col_org + " = " + "+ col_new + ";";
Можете ли вы привести пример строки обновления?
Replace([NAME_MR]
должно быть Replace("[NAME_MR]"
, но тогда я не могу помочь дальше из-за отсутствия опыта SQL
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
query
?