以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  看看我的错误在哪里  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43201)

--  作者:wuxianzuoji41
--  发布时间:2013/12/2 10:45:00
--  看看我的错误在哪里

For Each dr1 As Row In Tables("填加客户_tblLinshi").Rows
    Dim dr2 As DataRow = DataTables("baidu_client").Find("cCompany= \'" & dr1("号码") & "\'")
    If dr2 Is Nothing Then
      dr2.DataTable.AddNew
      dr2("cCompany")=dr1("号码")

    End If
Next
messagebox.Show("标记完毕")

 

比较 dr1("号码")是否在dr2(("cCompany")里存在,如果没有就新添加一个记录。

 

怎么提示错误,未将对象引用设置对象实例

 


--  作者:Bin
--  发布时间:2013/12/2 10:51:00
--  

If dr2 Is Nothing Then
      dr2.DataTable.AddNew  \'DR2既然是空,你DR2.datatable 当然会报错空值啊.  你要为哪个表增加行,应该指定表.
      dr2("cCompany")=dr1("号码")

    End If


--  作者:Bin
--  发布时间:2013/12/2 10:52:00
--  
例如

For Each dr1 As Row In Tables("填加客户_tblLinshi").Rows
    Dim dr2 As DataRow = DataTables("baidu_client").Find("cCompany= \'" & dr1("号码") & "\'")
    If dr2 Is Nothing Then
      dr2=
DataTables("baidu_client").AddNew
      dr2("cCompany")=dr1("号码")

    End If
Next
messagebox.Show("标记完毕")


--  作者:wuxianzuoji41
--  发布时间:2013/12/2 11:47:00
--  
以下是引用Bin在2013-12-2 10:52:00的发言:
例如

For Each dr1 As Row In Tables("填加客户_tblLinshi").Rows
    Dim dr2 As DataRow = DataTables("baidu_client").Find("cCompany= \'" & dr1("号码") & "\'")
    If dr2 Is Nothing Then
      dr2=
DataTables("baidu_client").AddNew
      dr2("cCompany")=dr1("号码")

    End If
Next
messagebox.Show("标记完毕")

谢谢,bin,解决问题了。

 

但是还有一个新问题。我的DataTables("baidu_client")是动态加载的,这个程序只比较已经加载到程序的里baidu_client数据,不比较数据库里的其他未加载baidu_client")的数据,这个该怎么解决

[此贴子已经被作者于2013-12-2 11:49:33编辑过]

--  作者:Bin
--  发布时间:2013/12/2 12:06:00
--  
使用SQLCOMMAND 执行SQL语句到数据库里查找吧



--  作者:狐狸爸爸
--  发布时间:2013/12/2 12:33:00
--  

楼主,你可以一条SQL语句,搞定所有的一切,例如将表B的第一列,更新为表A的第一列,条件是主键相同:

 

UPDATE {表A},{表B} SET {表B}.第一列 = {表A}.第一列 WHERE {表B}.[_Identify] = {表A}.[_Identify]

 

这样后台数据也生效,当然执行完毕后,表B要重新加载一下。