以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]老师,帮我看看这个新增行后立即被引用_Identify的难题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154413) |
-- 作者:huangfanzi -- 发布时间:2020/9/14 16:10:00 -- [求助]老师,帮我看看这个新增行后立即被引用_Identify的难题 之前我提过一次问题,就是以下代码: Dim dr As DataRow = _dt业务结算.AddNew dr("结算编号") = dr("_Identify") dr.Save 以上代码无法得到“结算编号”,实际测试,得到的永远是个 0 你是指导我用以下代码 Dim dr As DataRow = _dt业务结算.AddNew dr.Save dr("结算编号") = dr("_Identify") dr.Save 实际测试,同样得不到“结算编号” 你让我以后不要用 _Identify 作为编号使用,可现在这个项目已经在用了,本来在结算界面,这个_Identify是通过用户在表上新增一行后可以得到的,可现在用户要求根据出入库自动结算,我在出入库表中用了上面的代码在后台结算表中自动生成结算记录,此时,这个编号困扰我二周了,老师看看,有何办法可以让我得到这个新增行的 _Identify 万分感谢! [此贴子已经被作者于2020/9/14 16:10:32编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/9/14 16:16:00 -- 我测试没有问题。_dt业务结算这个表格是怎么生成的? 到命令窗口执行代码,然后对比看后台数据库的数据 Dim dr As DataRow = _dt业务结算.AddNew dr.Save Output.Show( dr("_Identify")) |
-- 作者:huangfanzi -- 发布时间:2020/9/15 8:29:00 -- 以下是_dt业务结算的生成代码: 项目事件:Initialize
Dim cmd_业务结算 As New SQLCommand cmd_业务结算.C cmd_业务结算.C ommandText = "S elect * From {业务结算} Where [_Identify] Is Null" _dt业务结算 = cmd_业务结算.ExecuteReader(True) 按老师的办法测试了下,显示的还是0,业务结算中新增了一个空行 |
-- 作者:有点蓝 -- 发布时间:2020/9/15 9:10:00 -- 后台数据库_Identify 显示的还是0?没有设置为自增主键吧 |
-- 作者:huangfanzi -- 发布时间:2020/9/15 9:49:00 -- 没设置过 我又试了以下代码: Dim dr As DataRow = _dt业务结算.AddNew dr("数量") = 1 dr.Save Output.Show( dr("数量")) 这个执行结果是正确的,看来,只有这个_Identify得不到 |
-- 作者:有点蓝 -- 发布时间:2020/9/15 9:51:00 -- 可能是临时表的原因,换种方式:http://www.foxtable.com/webhelp/topics/3274.htm |
-- 作者:huangfanzi -- 发布时间:2020/9/15 10:32:00 -- 老师,用你这个新思路是可以解决了,虽然有点绕弯子了,现在就一个小问题,以下是我的代码示例: Dim cmd As new SQLCommand cmd.C cmd.C ommandText = "Insert Into 每日库存 (入库数量) Values(?);Select SCOPE_IDENTITY()" cmd.Parameters.Add("@入库数量",3) Dim id As Integer = cmd.ExecuteScalar() Dim dr As DataRow dr = _dt每日库存.SQLFind("_Identify = " & id) If dr IsNot Nothing Then \'如果找到的话 dr("品名") = id dr.Save End If 有一小问题,上面代码执行Insert Into时,我希望就仅仅新增加一个行,不要写入数据,不知这个语句应该如何改 |
-- 作者:有点蓝 -- 发布时间:2020/9/15 10:36:00 -- cmd.C ommandText = "Insert Into 每日库存 (入库数量) Values(null);Select SCOPE_IDENTITY()" 去掉这句:cmd.Parameters.Add("@入库数量",3)
|
-- 作者:huangfanzi -- 发布时间:2020/9/15 10:42:00 -- 每日库存 (入库数量) 这个入库数量必须要加上吗,或者说必须要写个字段名在挂号内吗? |
-- 作者:有点蓝 -- 发布时间:2020/9/15 10:52:00 -- 随便填一个列名即可 |