以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- SQLdeletefor 无法删除行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121250)
|
-- 作者:lur320
-- 发布时间:2018/7/2 16:23:00
-- SQLdeletefor 无法删除行
dim lines as int... lines=DataTables("DailyOutput").SQLDeleteFor("[so_no]= \'" & e.DataRow("so_no") & "\'AND [Work_station] = \'" & e.DataRow("Work_station") & "\'") MessageBox.Show("[so_no]= \'" & e.DataRow("so_no") & "\' AND [Work_station] = \'" & e.DataRow("Work_station") & "\'" & lines)
结果显示[so_no]=\'7010\' AND [Work_station]=\'臂\' 0 lines显示1条都没有删除。
但是去SQL server里面看,依旧存在大量的订单7010没有删除。
后来我把黄色部分代码删除,所有订单都没了,但是我的需求是按照工位station来删除的。请教。
|
-- 作者:lur320
-- 发布时间:2018/7/2 16:36:00
--
此主题相关图片如下:capture.png
|
-- 作者:有点甜
-- 发布时间:2018/7/2 18:50:00
--
你的列【so_no】、【Work_station】是什么类型?如果是char或者nchar,会有多余空格的。要改成varchar
数据库的字段类型,不要用char或者nchar,如果用了,会在后面加入空格的;请改成varchar或者nvarchar,然后,把数据后面的空格删除,可以写代码
For Each r As Row In Tables("表A").rows For Each c As Col In r.Table.cols r(c) = cstr(r(c)).trim Next Next
|
-- 作者:lur320
-- 发布时间:2018/7/2 19:31:00
--
我的数据库是从狐表导入到外部数据库的,还么有检查过。so_no和work_station是字符型,长度限制50. SQL server里面没有查过,现在去看。
|
-- 作者:lur320
-- 发布时间:2018/7/2 19:34:00
--
数据库里面是nvchar此主题相关图片如下:capture.png
|
-- 作者:lur320
-- 发布时间:2018/7/2 19:42:00
--
使用SQL命令专门跑了select。此主题相关图片如下:capture.png
|
-- 作者:lur320
-- 发布时间:2018/7/2 19:45:00
--
使用SQL命令专门跑了select。
slect * frm {DailyOutput} where Work_station = \'臂\' 无结果 slect * frm {DailyOutput} where so_no = \'11\' 正常工作 slect * frm {DailyOutput} where Work_station = \'臂\' and Work_station = \'臂\' 无结果 肯能是什么引起的?
|
-- 作者:有点蓝
-- 发布时间:2018/7/2 20:16:00
--
select Work_station, len(Work_station) as 字符长度 frm DailyOutput
执行什么sql,看返回的长度是多少
|
-- 作者:lur320
-- 发布时间:2018/7/2 20:43:00
--
问题解决了。我在SQL 里面直接执行sel ct * fr m [dbo].[DailyOutput] where [Work_station] =\'臂\' 也无法出现行。 后来查到问题是排序规格不正确。
如果需要判断的列会出现中文,那么需要将数据库的排序规则改为Chinese_PRC_CI_AS https://jingyan.baidu.com/article/c74d600060804a0f6a595dfd.html
|