自定义类继承自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

然后我第二次引用应该怎么引用法,而不让第一次的数据丢失而是在原来的基本上再加上一行?
我是没提交到数据库的
...全文
160 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧