使用DataTable需要注意

   今天在调试程序的时候,发现将DataTable加到DataSet引起的错误,可能有的人会说这不是很简单吗!做VB.net开发的基本上都会用到,而且也没出什么异常呀!不过就是将一个DataSet中的DataTable直接追加到另一个DataSet中出现Bug了,
请看下面代码:
 Business层代码
   Public   Shared   Function GetCSVInfo() Function GetCSVInfo(ByVal p_strOrderRequestNo As StringAs DataSet
            
Dim l_dstOrderCSV As New DataSet
            
Dim l_objHeaderDataAccess As New VendorOrderRequest_Access
            
Dim l_objDetailDataAccess As New VendorOrderRequestDetail_Access

            l_dstOrderCSV.Tables.Add(l_objHeaderDataAccess.GetOrderCSVHeaderInfo(p_strOrderRequestNo))
            l_dstOrderCSV.Tables.Add(l_objDetailDataAccess.GetOrderCSVDetailInfo(p_strOrderRequestNo))

            
Return l_dstOrderCSV
        
End Function

Access层代码:
   Public   Function GetOrderCSVHeaderInfo() Function GetOrderCSVHeaderInfo(ByVal p_strOrdertRequestNo As StringAs DataTable
            
Dim l_objDataSet As New DataSet
                       
'执行存储过程代码
                        l_objDataAdapter.Fill(l_objDataSet, "CSVHeaderInfo")

                        
Return l_objDataSet.Tables(0)
                    
        
End Function
其实上面的代码是有问题的:将一个DataSet中的DataTable直接追加到另一个DataSet中是不允许的,因为追加时是Table的地址传递,那么两个DataSet同用一个DataTable,DataSet中是不允许这样的操作。
解决方法:
1、DataSet中的Table Copy一份追加到另一个DataSet中
 DataSet1.Tables.add(DataSet2.Tables(0).Copy)
2、Table单独存在,不要放到DataSet中
 DataSet1.Tables.add(Table1)

Keyword:datatable,dataset,dataset.tables,dataset.add,datatable.copy,

转载于:https://www.cnblogs.com/Qizai/archive/2007/10/26/939243.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值