首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否将SAP RFC结构保存到MSSQL表?

是否将SAP RFC结构保存到MSSQL表?
EN

Stack Overflow用户
提问于 2013-07-03 13:59:43
回答 1查看 4.3K关注 0票数 1

最近我正在做一个项目,需要从SAP表中提取数据到MICROSOFT SQL表中,我已经完成了连接部分,我还将SAP结构值拉到ASP.NET中。

我的问题是如何将结构保存到Sql表中?

这是我的代码;

代码语言:javascript
复制
RfcDestination mydestination = RfcDestinationManager.GetDestination("rfcecp");
        RfcRepository myrepository = mydestination.Repository;
        IRfcFunction EHSIMSFM = myrepository.CreateFunction("ZEHSIMS");

        EHSIMSFM.Invoke(mydestination);

        IRfcTable positable = EHSIMSFM.GetTable("POSITIONTAB1");

        if (positable.RowCount > 0)"THIS IS THE SAP STRUCTURE WITH ROW COUNT '300'."
        {

            posid.Text = "working";
        }
        else
        {

            posid.Text = "notworking";
        }
    }
    catch (Exception ej)
    {
        posid.Text = ej.Message;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-03 16:16:27

您可以通过NCo 3SAP连接器从返回的IRfcTable收集所有信息。

下面是遍历IRfcTable对象中的每一行(IRfcStructure)的方法。

代码语言:javascript
复制
foreach (IRfcStructure row in rfcTable)
{
    for (int element = 0; element < rfcTable.ElementCount; element++)
    {
        RfcElementMetadata metadata = rfcTable.GetElementMetadata(element);
        // row.GetString(metadata.Name); // get value from row's field
    }

    // You have your data from a row here..
}

示例:下面是将IRfcTable转换为DataTable的代码。

代码语言:javascript
复制
public static DataTable CreateDataTable(IRfcTable rfcTable)
{
    var dataTable = new DataTable();

    for (int element = 0; element < rfcTable.ElementCount; element++)
    {
        RfcElementMetadata metadata = rfcTable.GetElementMetadata(element);
        dataTable.Columns.Add(metadata.Name);
    }

    foreach (IRfcStructure row in rfcTable)
    {
        DataRow newRow = dataTable.NewRow();
        for (int element = 0; element < rfcTable.ElementCount; element++)
        {
            RfcElementMetadata metadata = rfcTable.GetElementMetadata(element);
            newRow[metadata.Name] = row.GetString(metadata.Name);
        }
        dataTable.Rows.Add(newRow);
    }

    return dataTable;
}

同样,您可以将数据添加到MSSQL DB中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17440728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档