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

原创 2006年06月19日 16:41:00
    经多次试验发现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问题?
http://community.csdn.net/Expert/topic/4295/4295686.xml?temp=.783169

dataAdapter的TableMappings属性在开发中有什么用?

http://blog.csdn.net/zhanglei5415/article/details/1703177 DataAdapter.TableMappings 属性 获取一个集合,它提...

SqlDataAdapter.TableMappings 的用法

用处是:利用TableMappings可以给DataSet绑定多个表,并给DataSet做相应的表名影射     如果一个DataAdapter返回的是多个记录集,那么,可以通过这个Tab...

DataSet 类与DataAdapter的TableMappings属性

Normal 0 0 2 MicrosoftInternetExplorer4

数组的首地址和数组的第一个元素的首地址和数组做函数参数的退化问题

1.数组的地址和数组首元素的地址是一样的。既然地址都是一样为什么还会有这样的问题呢? 那么数组的地址指向的内存空间的类型是数组,而数组首元素的地址指向的内存空间的类型的首元素的类型。 int main...

VC 程序只运行一个进程,再次运行传参数给第一个进程的问题

// test_onlyOneExe.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #i...

setTimeout的第一个参数出错问题

今天有人在群里问setTimeout第一次参数为字符串的时候为什么会报错,代码如下: function display(obj) { obj.style.display='none';...

关于setTimeout 第一个参数的问题解析

题目为什么叫setTimeout的第一个参数而不是回调函数?如果你心中有稍有疑惑,或许应该看看下面的文章我们日常使用setTimeout(),一般是将函数作为第一个参数,但是也有例外情况,先看以下代码...
  • sjn0503
  • sjn0503
  • 2017年03月10日 12:58
  • 1028

IT大冒险的第一个问题

  • 2013年04月09日 15:06
  • 1.89MB
  • 下载

Android menu add中的4个参数说明

/** * * add()方法的四个参数,依次是: * * 1、组别,如果不分组的话就写Menu.NONE, * * 2、Id,这个很重要,Android根据这个Id来确...
  • zjy_hll
  • zjy_hll
  • 2014年12月26日 13:54
  • 2066

mysqldump默认参数add-drop-table

接到一个同事电话,说UAT环境上的一张表被删了,要恢复一下。原来是新项目UAT,从测试库用mysqldump导出表结构在UAT上执行。由于只是新增几个表结构,相关的人员也就没去审核。由开发同事自己去执...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于TableMappings.Add第一个参数的问题
举报原因:
原因补充:

(最多只允许输入30个字)