以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  up date  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164193)

--  作者:tld
--  发布时间:2021/4/29 9:02:00
--  up date
老师好,下面的语句,希望实现如下功能:
开票流水表中有票据集合及开票id列,其中票据编号集合列是多个票据号码组成的字符串。希望在票据编号集合列中找到原票据号码,将一个新的票据号码替换旧的票据号码。如何用up date命令实现?

hm_n  是新号码
hm_o 是原号码
    dim hm as string = "%" & hm_o & "%"
    dim c md as new SQLC ommand
    cmd.Co nnectionName = "数据源名称"
    cmd.Comm andText = "UPD ATE 开票流水 SET 票据编号集合 = ? WHERE 票据编号集合 like  ?"
    cmd.Para meters.Add("@票据编号集合",            )
    cmd.Para meters.Add("@票据编号集合, hm )
    cmd.Exe cuteNonQuery()


谢谢!

--  作者:有点蓝
--  发布时间:2021/4/29 9:15:00
--  
什么数据库?SqlServer?
试试
cmd.CommandText = "UPDATE 开piao流水 SET piao据编号集合 = replace(
piao据编号集合,\',\'+?+\',\',\',\'+?+\',\') WHERE piao据编号集合 like  \'%,\'+?+\',%\'"
cmd.Para meters.Add("@编号1",hm_n)
cmd.Para meters.Add("@编号2, hm_o )
cmd.Para meters.Add("@编号3, hm_o )

如果不行就只能直接拼sql

cmd.CommandText = "UPDATE 开piao流水 SET piao据编号集合 = replace(piao据编号集合,\',\'+" & hm_n & "+\',\',\',\'+" & hm_o & "+\',\') WHERE piao据编号集合 like  \'%,\'+" & hm_o & "+\',%\'"

--  作者:tld
--  发布时间:2021/4/29 14:05:00
--  
老师,是SqlServer数据库。票据编号集合中,不一定有几个票据编号组成。希望在票据编号集合中查找票据编号为 a的编号,用 编号b 来替换。
--  作者:有点蓝
--  发布时间:2021/4/29 15:01:00
--  
不管几个编号都可以使用上面的方法
--  作者:tld
--  发布时间:2021/4/29 22:43:00
--  
老师,确认是如下顺序
cmd.Para meters.Add("@编号1",hm_n)
cmd.Para meters.Add("@编号2, hm_o )
cmd.Para meters.Add("@编号3, hm_o )
而不是 下面的顺序吗?
cmd.Para meters.Add("@编号1, hm_o )
cmd.Para meters.Add("@编号2",hm_n)
cmd.Para meters.Add("@编号3, hm_o )
狐表中的字符串 replace ,都是被替换的字符串在前
谢谢老师!

--  作者:有点蓝
--  发布时间:2021/4/29 23:19:00
--  
cmd.Para meters.Add("@编号1, hm_o )
cmd.Para meters.Add("@编号2",hm_n)
cmd.Para meters.Add("@编号3, hm_o )