以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]无法将类型为“System.String”的对象强制转换为类型“Foxtable.Table”  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=124997)

--  作者:一只田鸡
--  发布时间:2018/9/18 9:39:00
--  [求助]无法将类型为“System.String”的对象强制转换为类型“Foxtable.Table”
运行错误:
.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2018.7.28.1
错误所在事件:自定义函数savetable
详细错误信息:
调用的目标发生了异常。
无法将类型为“System.String”的对象强制转换为类型“Foxtable.Table”。

代码如下:
Dim t As Table = args(0)
Dim i1,i2,i3 As Integer
\'根据DataTable获取一个System.Data.DataTable类型变量
Dim dt As System.Data.DataTable = t.DataTable.BaseTable
\'获取新增行数
Dim t1 As System.Data.DataTable = dt.GetChanges(System.Data.DataRowState.Added )   \'新增行
If t1 IsNot Nothing Then
    i1 = CStr(t1.Rows.count)
End If
\'获取修改行数
Dim t2 As System.Data.DataTable = dt.GetChanges(System.Data.DataRowState.Modified )   \'修改行
If t2 IsNot Nothing Then
    i2 = CStr(t2.Rows.count)
End If
\'获取已删除行数
Dim t3 As System.Data.DataTable = dt.GetChanges(System.Data.DataRowState.Deleted )   \'已删除行
If t3 IsNot Nothing Then
    i3 = CStr(t3.Rows.count)
End If

If i1+i2+i3 >0 Then
    MessageBox.Show("数据变动了  " & i1+i2+i3 & "   行,已经保存...","提示")
    T.save
Else
    MessageBox.Show("你没有修改表数据或修改后已保存,无须再保存...","提示")
End If

==================================================================
请大佬们指点一下,谢谢QAQ

--  作者:有点甜
--  发布时间:2018/9/18 9:54:00
--  

Dim t As Table = args(0)

 

改成

 

Dim t As Table = Tables(args(0))


--  作者:一只田鸡
--  发布时间:2018/9/18 14:39:00
--  
问题已经完美解决,谢谢老师图片点击可在新窗口打开查看
--  作者:bashanren
--  发布时间:2018/12/9 18:07:00
--  

我也遇到同一问题:

我在项目一中的“Combobox1”中运行如下代码顺利,但在另一个项目中确总是不行,总提示下面的内容,请大师帮我修改一下,谢谢!!

代码:

Dim dr As DataRow = e.Sender.SelectedItem

If dr IsNot Nothing Then
   Tables("员工资料").Position = Tables("员工资料").FindRow(dr)
End If

 

无法将类型为“System.String”的对象强制转换为类型“Foxtable.DataRow”。

 

请大师帮忙修改,谢谢大师了。!!


--  作者:有点甜
--  发布时间:2018/12/9 21:29:00
--  

代码改成这样

 

Dim str As String = e.Sender.SelectedValue

Dim i As Integer = Tables("员工资料").FindRow("第一列 = \'" & str & "\'")

If i >= 0 Then
   Tables("员工资料").Position = i

Else

    msgbox("没找到")
End If


--  作者:bashanren
--  发布时间:2018/12/10 0:10:00
--  
目标实现,太谢谢“有点甜”大师了!!