C# 使用Microsoft.Dynamics.BusinessConnectorNet插入pdf文件

C# 使用Microsoft.Dynamics.BusinessConnectorNet插入pdf文件,c#,pdf,containers,axapta,C#,Pdf,Containers,Axapta,我需要通过C#应用程序使用Microsoft.Dynamics.BusinessConnectorNet.dll将pdf文件插入Ax数据库 我指的是这篇文章 AX列类型为容器 当我插入二进制数组时,异常显示: 提供的方法参数无效 将文件插入AX数据库的数据类型应该是什么?我想您必须使用AxaptaContainer类在容器中传递值 AxaptaRecord axRecord; try { // Login to Microsoft Dynamics AX. ax = new A

我需要通过C#应用程序使用Microsoft.Dynamics.BusinessConnectorNet.dll将pdf文件插入Ax数据库

我指的是这篇文章

AX列类型为容器

当我插入二进制数组时,异常显示:

提供的方法参数无效


将文件插入AX数据库的数据类型应该是什么?

我想您必须使用
AxaptaContainer
类在容器中传递值

AxaptaRecord axRecord;

try
{
    // Login to Microsoft Dynamics AX.
    ax = new Axapta();
    ax.Logon(null, null, null, null);

    // Create a new AddressState table record.
    using (axRecord = ax.CreateAxaptaRecord("TableName"))
    {
        // Provide container for record field.
        AxaptaContainer axContainer = ax.CreateAxaptaContainer();
        axContainer.Add("Some Data");

        axRecord.set_Field("ContainerField", axContainer);

        // Other fields

        // Commit the record to the database.
        axRecord.Insert();
    }
}
catch (Exception e)
{
    Console.WriteLine("Error encountered: {0}", e.Message);
    // Take other error action as needed.
}
我还没有测试过,所以请提供一些反馈,以便我们改进解决方案

        Axapta DynAx = new Axapta();
        AxaptaRecord DynRec;
        string strUserName = "";
        System.Net.NetworkCredential nc = new System.Net.NetworkCredential("", "");

        string tableName = "";

        DynAx.LogonAs(strUserName.Trim(), "", nc, dataAreaId, "en-us","", "");

        try
        {
            using (DynRec = DynAx.CreateAxaptaRecord(tableName))
            {
                var binData = DynAx.CreateAxaptaObject("Bindata");
                var loaded = binData.Call("loadFile", path);
                var data = binData.Call("getData");

                AxaptaContainer axc = DynAx.CreateAxaptaContainer();

                axc.Add(data);


                DynRec.set_Field("ATTACHMENT", axc.get_Item(1));

                // Commit the record to the database.
                DynRec.Insert();
            }
        }
        catch (Exception ex)
        {
            return false;
        }
        finally
        {
            DynAx.Logoff();
        }

通过Ax身份验证,从Ax Bindata类获取容器并保存记录。

谢谢Maxim,容器是正确的选项。初始化AxaptaContainer的正确方法是在Axapta类中调用CreateAxaptaContainer方法。您能否提供一些示例代码,以便我更新答案以供将来参考?