以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]用find方法找到符合条件的行后,想修改字符型和逻辑型列的值,如何写代码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99330)

--  作者:foxtable666
--  发布时间:2017/4/17 15:11:00
--  [求助]用find方法找到符合条件的行后,想修改字符型和逻辑型列的值,如何写代码?
这样写代码显错:Dr("在任”)=true,提示无法执行“=”操作,如何解决?
--  作者:有点色
--  发布时间:2017/4/17 15:36:00
--  

 贴出你完整的代码。

 

Dim fdr As DataRow = DataTables("表A").Find("")

If fdr IsNot Nothing Then

    fdr("第一列") = 123

End If


--  作者:foxtable666
--  发布时间:2017/4/17 16:09:00
--  
不好意思现在不在电脑房,无法提供完整代码,但我也是这样编,但提示系统无法在system.boolean和system.string上执行“=”操作。
--  作者:有点色
--  发布时间:2017/4/17 16:14:00
--  
 贴出你完整的代码,不然无法排错。
--  作者:foxtable666
--  发布时间:2017/4/18 15:27:00
--  

Dim DR As Row =Tables("会计岗位任免表").Current
Dim A,B,C,D As String
A = DR("姓名")
B = DR("会计岗位")
C = DR("核算单位")
D = DR("免职录入")
If DR("在任")="0" And  DR("免职录入") = USER.Name  And  DR("任免性质") = "免职"  Then
    MessageBox.Show("1!","提示")
    Dim Er As DataRow
    Er = DataTables("会计岗位任免表").Find("姓名 = \'" & A & "\' And  会计岗位 = \'" & B & "\' And  核算单位 = \'" & C & "\' And  在任 = \'0\' And  免职录入 =\'" & D & "\' And  任免性质 = \'任职\'","任免日期 Desc")
    MessageBox.Show("2!","提示")
    If Er IsNot Nothing  Then
        MessageBox.Show("3!","提示")
        ER("免职录入")=""
        ER("在任")=True
        MessageBox.Show("4!","提示")
        Tables("会计岗位任免表").Current.Delete
        MessageBox.Show("已删除成功!","提示")
    End If
End If

 

 

运行到MessageBox.Show("1!","提示")就出错了:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2017.3.18.1
错误所在事件:窗口,会计岗位任免,Button1,Click
详细错误信息:
无法在 System.Boolean 和 System.String 上执行“=”操作。

 

 


--  作者:有点蓝
--  发布时间:2017/4/18 16:10:00
--  
If DR("在任")=true And  DR("免职录入") = USER.Name  And  DR("任免性质") = "免职"  Then
--  作者:foxtable666
--  发布时间:2017/4/18 16:53:00
--  

还是同样出错,跟DR("在任")=true 没关系,不知错在哪?

运行MessageBox.Show("1!","提示")后就出错了:

  • .NET Framework 版本:2.0.50727.5485
    Foxtable 版本:2017.3.18.1
    错误所在事件:窗口,会计岗位任免,Button1,Click
    详细错误信息:
    无法在 System.Boolean 和 System.String 上执行“=”操作。
[此贴子已经被作者于2017/4/18 16:55:07编辑过]

--  作者:有点蓝
--  发布时间:2017/4/18 17:36:00
--  
 Er = DataTables("会计岗位任免表").Find("姓名 = \'" & A & "\' And  会计岗位 = \'" & B & "\' And  核算单位 = \'" & C & "\' And  在任 = 0 And  免职录入 =\'" & D & "\' And  任免性质 = \'任职\'","任免日期 Desc")

去掉单引号,如果是Access数据库,改为

 Er = DataTables("会计岗位任免表").Find("姓名 = \'" & A & "\' And  会计岗位 = \'" & B & "\' And  核算单位 = \'" & C & "\' And  在任 = false And  免职录入 =\'" & D & "\' And  任免性质 = \'任职\'","任免日期 Desc")

--  作者:foxtable666
--  发布时间:2017/4/18 23:41:00
--  

按有点蓝大师的方法改过后终于解决了,非常感谢!!!图片点击可在新窗口打开查看,感谢各位大师的热情帮助图片点击可在新窗口打开查看