Asp.net 是否将SAP RFC结构保存到MSSQL表?

Asp.net 是否将SAP RFC结构保存到MSSQL表?,asp.net,sql,sql-server-2008,system.data.sqlite,sap-dotnet-connector,Asp.net,Sql,Sql Server 2008,System.data.sqlite,Sap Dotnet Connector,最近,我正在从事一个项目,该项目需要将数据从SAP表提取到MICROSOFT SQL表,我已经完成了连接部分,并且还将SAP结构值提取到ASP.NET中 我的问题是如何将结构保存到Sql表中 这是我的密码 RfcDestination mydestination = RfcDestinationManager.GetDestination("rfcecp"); RfcRepository myrepository = mydestination.Repository;

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

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

这是我的密码

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;
    }

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

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

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..
}
foreach(rfcTable中的IRfcStructure行)
{
for(int-element=0;element

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

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;
}
公共静态数据表CreateDataTable(IRfcTable rfcTable)
{
var dataTable=新的dataTable();
for(int-element=0;element

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

非常感谢。您能帮助我如何使此代码在后台运行吗?@user2536023 stackoverflow中有一些关于它的好主题。例如,您可以遵循以下步骤