关于TableMappings.Add第一个参数的问题

    经多次试验发现DA层的this.DataAdapter.TableMappings.Add方法的第一个参数只能为“Table”、“Table1”、“Table2”……,而且大小写要保持一致。SP返回一个结果集时用“Table”,返回两个结果集时一次使用“Table”、“Table1”。以此类推。
    例:this.DataAdapter.TableMappings.Add("Table",  updateConfirmDat.ParentRecord.TableName);
        this.DataAdapter.TableMappings.Add("Table1", updateConfirmDat.ParentRecordCount.TableName);
    调查原因时, 在オブジェクトブラウザ查到TableMappings.Add的第一个参数为sourceTable,第二个参数为dataSetTable。还有,对基类用到的DbDataAdapter的Fill方法有如下描述。
 
        public override System.Int32 Fill ( System.Data.DataSet dataSet )
            System.Data.Common.DbDataAdapter のメンバ
        概要 :
         System.Data.DataSet 名を使用して、データ ソース内の行と一致するように、System.Data.DataSet 内の行を
        追加または更新します。また、Table という名前の System.Data.DataTable を作成します。 

        パラメータ :
        dataSet: レコードおよび必要に応じてスキーマを格納するための System.Data.DataSet。
 
        戻り値 :
         System.Data.DataSet で正常に追加または更新された行数。これには、行を返さないステートメントの影響            を受ける行は含まれません。 
 
    我的理解,TableMappings.Add方法是把データ ソース(数据库)中的表映射到DataSet中的表上。Fill(System.Data.DataSet dataSet)方法执行指定的SQL文,把数据从データ ソース表提取到DataSet表。但这只是用于单表查询,不适用于多表查询和使用存储过程。由于存储过程返回的结果集没有对应的データ ソース表,则被Fill方法按返回顺序做成了以“Table”、“Table1”、“Table2”……为名称的DataTable。再根据TableMappings中的映射追加或更新到DataSet中。
    所以,向TableMappings中Add表名时,应依照调用的SP中查询结果集的顺序设置接收结果的表。
    另外,若要改变TableMappings中“Table”的映射目标表,可用下面的语句:
        DataAdapter.TableMappings["Table"].DataSetTable = DataSet.DataTable.TableName
 
 
    在CSDN上找到一个沾点儿边的帖子,给了些启发。
dataset中TableMappings的tablename问题?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值