ошибка времени выполнения в SAP Business One Client - PullRequest
0 голосов
/ 21 сентября 2019

Мой код имеет ошибку времени выполнения Ошибка:

Исключение типа 'System.Runtime.InteropServices.COMException' произошло в MatrixFill.exe, но не было обработано в коде пользователя. Дополнительная информация: 1).[Microsoft] [Собственный клиент SQL Server 11.0] [SQL Server] Неверный синтаксис рядом с «OCRD».Я хочу подключиться к sap через c # и заполнить матрицу. Как мне изменить код ???

мой код:

using System;
using System.Collections.Generic;
using System.Xml;
using SAPbouiCOM.Framework;

namespace MatrixFill
{
  [FormAttribute("MatrixFill.Form1", "Form1.b1f")]
  class Form1 : UserFormBase
  {
    public Form1()
    {
    }

    /// <summary>
    /// Initialize components. Called by framework after form created.
    /// </summary>
    public override void OnInitializeComponent()
    {
      this.Matrix0 = ((SAPbouiCOM.Matrix)(this.GetItem("Item_0").Specific));
      this.Button0 = ((SAPbouiCOM.Button)(this.GetItem("btnFill").Specific));
      this.Button0.ClickBefore += new
      SAPbouiCOM._IButtonEvents_ClickBeforeEventHandler(this.Button0_ClickBefore);
      this.OnCustomInitialize();

    }

    /// <summary>
    /// Initialize form event. Called by framework before form creation.
    /// </summary>
    public override void OnInitializeFormEvents()
    {
    }

    private SAPbouiCOM.Matrix Matrix0;

    private void OnCustomInitialize()
    {

    }

    private SAPbouiCOM.Button Button0;

    private void Button0_ClickBefore(object sboObject, SAPbouiCOM.SBOItemEventArg pVal, out bool BubbleEvent)
    {
      BubbleEvent = true;
      SAPbobsCOM.Company oCompany = (SAPbobsCOM.Company)Application.SBO_Application.Company.GetDICompany();
      SAPbobsCOM.Recordset oRset = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
      string Query = "select CardCode,CardName,E_Mail sFrom OCRD";
      oRset.DoQuery(Query);
      if (oRset.RecordCount > 0)
      {
        for (int i = 0; i < oRset.RecordCount; i++)
        {
          Matrix0.AddRow();
          ((SAPbouiCOM.EditText)Matrix0.Columns.Item("colCode").Cells.Item(i + 1).Specific).Value = oRset.Fields.Item("CardCode").Value.ToString();
          ((SAPbouiCOM.EditText)Matrix0.Columns.Item("colName").Cells.Item(i + 1).Specific).Value = oRset.Fields.Item("CardName").Value.ToString();
          ((SAPbouiCOM.EditText)Matrix0.Columns.Item("colEmail").Cells.Item(i + 1).Specific).Value = oRset.Fields.Item("E_Mail").Value.ToString();
          oRset.MoveNext();

        }
      }

    }
  }
}

примечание: моя форма имеет матрицус тремя столбцами Матрица разработана в Visual Studio 2015

1 Ответ

0 голосов
/ 24 сентября 2019

Это потому, что у вас есть s прямо перед Снизу.

Измените это

выберите CardCode, CardName, E_Mail sFrom OCRD

на

Выберите CardCode, CardName, E_Mail From OCRD

Приветствия

Джон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...