• 全部
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

自定义类继承自DataSet,引用后第二次再引用而保存里面的数据的问题

cwq99 2005-03-13 10:19:21
Public Class lid401data_fh_rftr : Inherits DataSet
'定义一数据结构类,为其他层提供统一的接口
Public Const table_name As String = "FH_rftr"
Public Const ID_field As String = "ID"
Public Const ZDID_field As String = "ZDID"
Public Const RFID_field As String = "RFID"
Public Const TRDS_field As String = "TRDS"
Public Const BFDS_field As String = "BFDS"
Private Function buildtable()
Dim mytable As New DataTable(table_name)
mytable.Columns.Add(ID_field, System.Type.GetType("System.String"))
mytable.Columns.Add(ZDID_field, System.Type.GetType("System.String"))
mytable.Columns.Add(RFID_field, System.Type.GetType("System.String"))
mytable.Columns.Add(TRDS_field, System.Type.GetType("System.String"))
mytable.Columns.Add(BFDS_field, System.Type.GetType("System.String"))
Tables.Add(mytable)
End Function
Public Sub lid401data_fh_rftr()
buildtable()
End Sub
End Class

第一次引用
Private Sub create_rftrnew()
'创建数据表
Dim zdtrdata As Common.lid401data_fh_rftr = New Common.lid401data_fh_rftr()

Dim mytb As DataTable = zdtrdata.Tables(zdtrdata.table_name)
zdtrdata.lid401data_fh_rftr()
Dim row As DataRow = mytb.NewRow
'读取页面控件数据填充数据表
row(zdtrdata.TRDS_field) = Trim(TextBox_trds.Text)
row(zdtrdata.BFDS_field) = Trim(TextBox_bfds.Text)

mytb.Rows.Add(row)
DataGrid1.DataSource = zdtrdata
End Sub

然后我第二次引用应该怎么引用法,而不让第一次的数据丢失而是在原来的基本上再加上一行?
我是没提交到数据库的
...全文
97 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hamadou 2005-03-13
我不怎么上qq的!实在不行,你就使用private m as Common.lid401data_fh_rftr()
或者这个实例对应的datatable,dataset。
回复
cwq99 2005-03-13
主要是在调用时要实例化Common.lid401data_fh_rftr(),,而实例化了就又清空里面的数据了:(
不懂怎么解决
回复
cwq99 2005-03-13
按道理你这个方法应该可以的,可是不知道为什么还是不行,未将对象引用设置到对象的实例。
可以在QQ里面问你吗?我的号码是30382534
回复
cwq99 2005-03-13
按道理你这个方法应该行的,可是还是不得,可以在QQ里面问你吗?我的号码是30382534
回复
hamadou 2005-03-13
明白了!
这样就可以了!
(假设你的DataGrid1.DataSource还是zdtrdata)那么:

dim ds as dataset =ctype( DataGrid1.DataSource,dataset)
dim row1 as datarow = ds.tables(0).newrow()
row1(0) = Trim(TextBox_trds.Text)
row1(1) = Trim(TextBox_bfds.Text)
ds.tables(0).Rows.Add(row1)
回复
cwq99 2005-03-13
我是在另一个方法里实现呀,比如说我页面加载时是create_rftrnew了,然后我再有个按钮再加一行
回复
hamadou 2005-03-13
直接再新增一行就是了啊!
Dim row1 As DataRow = mytb.NewRow
'读取页面控件数据填充数据表
row1(zdtrdata.TRDS_field) = Trim(TextBox_trds.Text)
row1(zdtrdata.BFDS_field) = Trim(TextBox_bfds.Text)

mytb.Rows.Add(row1)
而且建议你把DataGrid1.DataSource = zdtrdata 改成mytb
回复
相关推荐
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-13 10:19
社区公告
暂无公告