以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于nothing 不能更改SQL后台数据列为null的请教 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161674) |
-- 作者:laipiwen -- 发布时间:2021/3/26 8:52:00 -- [求助]关于nothing 不能更改SQL后台数据列为null的请教 代码1 Dim dr As DataRow = DataTables("人员信息").sqlFind("姓名 =\'石改\'") \'Output.Show(dr("姓名")) dr("科室编号") = Nothing dr.Save 代码2 Dim dr As DataRow = DataTables("人员信息").Find("姓名 =\'石改\'") \'Output.Show(dr("姓名")) dr("科室编号") = Nothing dr.Save 代码3 Dim cmd As New SQLCommand cmd.ConnectionName =
"wb" cmd.CommandText = "U PDATE 人员信息 SET 科室编号 = null WHERE 姓名 =\'石改\'" cmd.ExecuteNonQuery() 代码1、2 中可以运行,不报错,但是SQL后台不会更改为null值 ,代码3 可以正常将SQL后台值更新为null值。 请问,代码1、2 应该如何写 才能实现 代码3 的效果?
[此贴子已经被作者于2021/3/26 9:25:04编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/26 9:15:00 -- 代码没有问题。检查是不会链接到其它数据库了,或者根本就是内部表 |
-- 作者:laipiwen -- 发布时间:2021/3/26 9:22:00 -- 不会的 我是用的SQL外部数据表 [此贴子已经被作者于2021/3/26 9:22:11编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/26 9:26:00 -- 不是使用了外部数据库,表格就一定是外部表。用了一段时间才发现表格是内部表的大把人在。 否则就是有其它代码影响了
|
-- 作者:laipiwen -- 发布时间:2021/3/26 9:47:00 -- 以下是引用有点蓝在2021/3/26 9:26:00的发言:
不是使用了外部数据库,表格就一定是外部表。用了一段时间才发现表格是内部表的大把人在。 否则就是有其它代码影响了 有点蓝老师,谢谢 解答! 我使用表的时候才加载外部表 OuterTableBuilder 所以,确定是外部数据库的表,这样加载的表 也不能直接设置表事件,也不会有其他事件代码 影响了 ,而且我测试 的时候 是在 命令窗口测试的代码 其实 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=120753&skin=0 这个帖子也在反馈 经过多次测试后 发现 如果 dr("科室编号") 值 为"" 的时候 dr("科室编号") = Nothing 无效 如果 dr("科室编号") 值 为"2" 的时候,就是有值的时候, 所以先 dr("科室编号") = "2" 然后再 dr("科室编号") = Nothing 有效 不知道程序就是这样 还是bug
[此贴子已经被作者于2021/3/26 9:59:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/26 16:33:00 -- 意思是dr("科室编号")原来是空字符串“”,然后然后无法更新为空值nothing(数据库为NULL),是吧。这个是正常的,这种情况只能使用sql处理。 因为在foxtable表格里是不存在空字符串值的。
|
-- 作者:laipiwen -- 发布时间:2021/3/26 17:09:00 -- 以下是引用有点蓝在2021/3/26 16:33:00的发言:
意思是dr("科室编号")原来是空字符串“”,然后然后无法更新为空值nothing(数据库为NULL),是吧。这个是正常的,这种情况只能使用sql处理。 因为在foxtable表格里是不存在空字符串值的。 是的,感谢解答。
|