如何更正向oledb query
发送参数?
MyCode是
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;
它不起作用)。我需要添加查询@target
(表名)和@columnname
(列名)。
修改为使用?
进行编码cmd.CommandText = "UPDATE ? SET [?] = Replace([?],OleDbType.VarChar)).Value = column.ColumnName;
cmd.Parameters.Add(new OleDbParameter("@columnname",OleDbType.VarChar)).Value = column.ColumnName;
错误:
更新语句中的语法错误
串联样式出错
string query = "UPDATE " + tb_tablename.Text.Trim() + " SET [" + column.ColumnName + "] = Replace([" + column.ColumnName + "],'');";
条件表达式中的数据类型不匹配
完整代码:
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 == 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 + "],'');";
using (OleDbCommand cmd = new OleDbCommand(query,conn))
{
cmd.ExecuteNonQuery();
}
}
}
}
有什么帮助:string query = "UPDATE " + tb_tablename.Text.Trim() + " SET " + column.ColumnName + " = Replace(" + column.ColumnName + ",\"\") WHERE " + column.ColumnName + " <> \"\";";
空白数据+保留的列名将全部破坏。 ColumnNames Date,Type,Note破坏了一切-将其从周期中排除。