文档章节

DataSet, DataTable

fandyx
 fandyx
发布于 2015/02/03 14:06
字数 433
阅读 35
收藏 0
// Copyright (C), 2015, CEU Co., Ltd.
// USR Changed by 2015-02-03T14:02:52 Fandy Xie 谢宇帆
// Version       : 1.0
// Description   : AX2009处理,读取dataSet,dataTable
// Return        : dataSet, dataTable
static System.Data.DataSet dataSet_dataTable_read(
    companyId   _companyId,
    tableName   _tableName,
    fieldName   _fieldName01   = "",
    anyType     _fieldValue1   = null,
    fieldName   _fieldName02   = '',
    anyType     _fieldValue2   = null,
    fieldName   _fieldName03   = "",
    anyType     _fieldValue3   = null,
    fieldName   _fieldName04   = '',
    anyType     _fieldValue4   = null,
    int         _maxRecords    = 2)
{
    System.Data.DataTable               dataTable;
    System.Data.DataSet                 dataSet;
    System.Data.DataTableCollection     dtCollection;
    System.Data.DataColumnCollection    colCollection;
    System.Data.DataRowCollection       rowCollection;
    System.Data.DataTableReader         dataTableReader;
    System.Data.DataRow                 row;
    System.Data.DataColumn              column;

    Common                  common;
    DictTable               dictTable;
    query                   q;
    queryRun                qr;
    queryBuildRange         qbr;
    queryBuildDataSource    qbds;
    map                     mapField = new map(types::Integer, types::String);
    MapEnumerator           me;
    fieldId                 fieldId, field1, field2, field3, field4;
    str                     tableName, fieldName, xmlValue;
    int                     columnCounter, rowCounter, i, j, m;
    str                     value, ret;
    container               mapCon;
    ;


    dictTable   = new DictTable(tableName2id(_tableName));
    common      = dictTable.makeRecord();
    field1      = fieldname2Id(dictTable.id(), _fieldName01);
    field2      = fieldname2Id(dictTable.id(), _fieldName02);
    field3      = fieldname2Id(dictTable.id(), _fieldName03);
    field4      = fieldname2Id(dictTable.id(), _fieldName04);

    q           = new query();
    q.allowCrossCompany(true);
    if (_companyId)
    {
        q.addCompanyRange(_companyId);
    }
    qbds        = q.addDataSource(dictTable.id());
    if (field1)
    {
        qbr     = qbds.addRange(field1);
        if (typeof(_fieldValue1) == types::String)
            qbr.value(_fieldValue1);
        else
            qbr.value(sysQuery::value(_fieldValue1));
    }
    if (field2)
    {
        qbr     = qbds.addRange(field2);
        if (typeof(_fieldValue2) == types::String)
            qbr.value(_fieldValue2);
        else
            qbr.value(sysQuery::value(_fieldValue2));
    }

    if (field3)
    {
        qbr     = qbds.addRange(field3);
        if (typeof(_fieldValue3) == types::String)
            qbr.value(_fieldValue3);
        else
            qbr.value(sysQuery::value(_fieldValue3));
    }
    if (field4)
    {
        qbr     = qbds.addRange(field4);
        if (typeof(_fieldValue4) == types::String)
            qbr.value(_fieldValue4);
        else
            qbr.value(sysQuery::value(_fieldValue4));
    }

    dataTable       = new System.Data.DataTable();
    colCollection   = dataTable.get_Columns();
    colCollection   = YIP_ViewDataSet::getTableColumnsCollection(colCollection, dictTable.id());
    mapField        = YIP_ViewDataSet::getTableFieldsMap(dictTable.id());

    rowCollection   = dataTable.get_Rows();
    tableName       = dictTable.name();
    dataTable.set_TableName(tableName);

    qr              = new queryRun(q);
    //info(qbds.toString());
    while (qr.next())
    {
        common = qr.get(dictTable.id());
        i++;
        if (_maxRecords)
        {
            if (i > _maxRecords)
                break;
        }
        row= dataTable.NewRow();
        me = mapField.getEnumerator();
        while (me.moveNext())
        {
            fieldId = me.currentKey();
            fieldName = me.currentValue();
            row.set_Item(fieldName, common.(fieldId));
        }
        rowCollection.Add(row);
    }


    setprefix(tableName);
    info("...coloumn, row Collection....................");
    rowCounter = rowCollection.get_Count();
    columnCounter = colCollection.get_Count();
    for(i = 0; i < rowCounter; i ++)
    {
        row = rowCollection.get_Item(i);
        //row01   = CLRInterop::getAnyTypeForObject(row.get_Item(i));
        for(j = 0; j < columnCounter; j ++)
        {
            column      = colCollection.get_Item(j);
            fieldName   = column.get_ColumnName();
            if (row.IsNull(j))
                xmlValue = "null";
            else
                xmlValue = row.get_Item(j);
            info(strfmt("Row Index[%1], column Index[%2, %3], value[%4].", i + 1, j + 1, fieldName, xmlValue));
        }
    }
    dataTable.WriteXml(@"C:\Users\h2xyf01\Desktop\EWF\a.xml");
    info("...dataTable.CreateDataReader....................");
    dataTableReader = dataTable.CreateDataReader();
    i = 0;

    while (dataTableReader.Read())
    {
        i++;
        value = queryValue(ClrInterop::getAnyTypeForObject(dataTableReader.GetValue(0)));
        //value = ClrInterop::getAnyTypeForObject(dataTableReader.get_Item("NAME"));
        value = strfmt("%1,%2", i,value);
        ret += ret ? "\n" + value : value;
    }
    info(ret);

    dataSet     = new System.Data.DataSet();
    dataSet.set_DataSetName(dataTable.get_TableName());
    dtCollection = dataSet.get_Tables();
    dtCollection.Add(dataTable);

    i = 0;
    info("...dataSet.CreateDataReader....................");
    dataTableReader = dataSet.CreateDataReader();
    ret = "";
    while (dataTableReader.Read())
    {
        i++;
        value = queryValue(ClrInterop::getAnyTypeForObject(dataTableReader.GetValue(0)));
        //value = ClrInterop::getAnyTypeForObject(dataTableReader.get_Item("NAME"));
        value = strfmt("%1,%2", i,value);
        ret += ret ? "\n" + value : value;
    }
    info(ret);

    return dataSet;
}


© 著作权归作者所有

共有 人打赏支持
fandyx
粉丝 0
博文 39
码字总数 11111
作品 0
东莞
技术主管
DataTable已属于另一个数据集

DataSet ds1 = new DataSet(); DataTable dt = (DataTable)gridControl1.DataSource; DataTable dt2 = dt.Copy();//如果不加这句话,则会出现DataTable属于另一个DataSet的错误 ds1.Tables.A......

donny945
2014/06/19
0
0
如何去掉DataTable中的重复行(新增.net 2.0中最新解决方法---简便)

.net 1.1中的解决方法(转) 1建立一个DataSetHelper类(DataSetHelper.cs) public class DataSetHelper ...{ public DataSet ds; public DataSetHelper(ref DataSet DataSet) ...{ ds = DataS......

pensir
2008/02/17
0
0
VB.Net DataSet和DataTable

在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 datatable 中。其实使用 dataset 相当于所使用数据库中数据的副本,保存在服务器的内存中。 ● 注意如...

晨曦之光
2012/04/24
2.7K
0
jquery datatable 常用例子

在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。 一、DataTable简介 (1)构造函数 ...

wolf_su
2013/05/28
0
0
将Excel文件数据库导入SQL Server

将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server openFileDialog = new OpenFileDialog(); openFileDialog.Filt...

晨曦之光
2012/03/09
231
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL 到底支不支持事务嵌套?

最近开发中遇到了使用MySQL,多次开启事务,出现了数据错乱问题,伪代码如下: begin; # 操作1 begin; # 操作2 rollback; 执行完后出现了操作1的数据真正写入,只有操作2的数据回滚...

宇润
39分钟前
5
0
fastDfs应用(安装过程待写)

1.效果 2.安装 2.1 导入已经安装好fastDFS的镜像 2.1.1 导入镜像 2.1.2 更改系统兼容性 2.1.3 开机 2.1.4 修改 一下内容 2.1.4.1 修改系统的ip 原来系统ip...

Lucky_Me
43分钟前
3
0
5. Python3源码—字符串(str)对象

5.1. 字符串对象 字符串对象是“变长对象”。 5.1.1. Python中的创建 Python中字符串(strs)对象最重要的创建方法为PyUnicode_DecodeUTF8Stateful,如下Python语句最终会调用到PyUnicode_D...

Mr_zebra
今天
4
0
第十章:路由网关(Zuul)进阶:过滤器、异常处理

第十章:路由网关(Zuul)进阶:过滤器、异常处理 简单介绍了关于Zuul的一些简单使用以及一些路由规则的简单说明。而对于一个统一网关而言,需要处理各种各类的请求,对不同的url进行拦截,或者...

DemonsI
今天
2
0
nginx屏蔽指定接口(URL)

Step1:需求 web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法 Step2:具体操作 location /dist/views/landing/UNIQUE_BEACON_URL { re...

Linux_Anna
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部