表达式中 'REPLACE' 函数未定义。

realdrizzt 2013-12-30 12:55:44
private void button6_Click(object sender, EventArgs e)
{
OleDbConnection mycon = null;
try
{
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\1.mdb;";
mycon = new OleDbConnection(strcon);
mycon.Open();

string sql1 = "Update temp SET 单据编号 = REPLACE(单据编号, 'SAR00', '')";
OleDbDataAdapter ad1 = new OleDbDataAdapter(sql1, strcon);
DataTable dt = new DataTable();

ad1.Fill(dt);
textBox3.Text = "导入完成";
}
finally
{
mycon.Close();
}
}

想把单据编号这个字段中SAR00都删除,用的access数据库
...全文
595 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2013-12-30
  • 打赏
  • 举报
回复
算挨着SAR00后面字符串的起始位置
realdrizzt 2013-12-30
  • 打赏
  • 举报
回复
引用 2 楼 feiyun0112 的回复:
UPDATE temp SET 单据编号= MID(单据编号, 1, INSTR(单据编号, 'SAR00') - 1) + '' + MID(单据编号, INSTR(单据编号, 'SAR00') + LEN('SAR00'), LEN(单据编号) - INSTR(单据编号, 'SAR00') - LEN('SAR00') + 1) WHERE INSTR(单据编号, 'SAR00') > 0; ***************************************************************************** 签名档: http://feiyun0112.cnblogs.com/
代码能执行,不过mid函数语法不是“SELECT MID(column_name,start[,length]) FROM table_name”么?怎么写这么复杂?能解析一下吗
feiyun0112 2013-12-30
  • 打赏
  • 举报
回复
截取前面和后面的字符,拼成新的
realdrizzt 2013-12-30
  • 打赏
  • 举报
回复
引用 2 楼 feiyun0112 的回复:
UPDATE temp SET 单据编号= MID(单据编号, 1, INSTR(单据编号, 'SAR00') - 1) + '' + MID(单据编号, INSTR(单据编号, 'SAR00') + LEN('SAR00'), LEN(单据编号) - INSTR(单据编号, 'SAR00') - LEN('SAR00') + 1) WHERE INSTR(单据编号, 'SAR00') > 0; ***************************************************************************** 签名档: http://feiyun0112.cnblogs.com/
请问这是神马意思,能解释解释吗
realdrizzt 2013-12-30
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
你连接的是access,不支持REPLACE函数,这是sqlserver的函数
我在access中用“Update temp SET 单据编号 = REPLACE(单据编号, 'SAR00', '')”试过了,可以执行,不过用c#写就出错
feiniao19830822 2013-12-30
  • 打赏
  • 举报
回复
Access是支持Replace函数,但是在C#中通过oledb来调用时,确实会显示"表达式中 'REPLACE' 函数未定义。"的异常。 2楼feiyun0112版主的做法是可行的。
熙风 2013-12-30
  • 打赏
  • 举报
回复
Access 是支持Replace 函数的,但是你是删除怎么写成update语句了
feiyun0112 2013-12-30
  • 打赏
  • 举报
回复
UPDATE temp SET 单据编号= MID(单据编号, 1, INSTR(单据编号, 'SAR00') - 1) + '' + MID(单据编号, INSTR(单据编号, 'SAR00') + LEN('SAR00'), LEN(单据编号) - INSTR(单据编号, 'SAR00') - LEN('SAR00') + 1) WHERE INSTR(单据编号, 'SAR00') > 0;

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
bdmh 2013-12-30
  • 打赏
  • 举报
回复
你连接的是access,不支持REPLACE函数,这是sqlserver的函数

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧