Указанный ключ отсутствует в словаре (C # и SAP nCo3) - PullRequest
0 голосов
/ 09 октября 2018

Я иногда обнаруживал эту ошибку в моем консольном приложении, которое построено на языках C #.Это приложение, как приложение API, используется для взаимодействия между системой SAP и другим приложением с использованием технологии .Net Connector 3.0 (или nCo3).

Я думаю, что возникает ошибка при вызове функции для подключения базы данных Oracle с помощью команды SQL какниже:

Я вызываю функцию следующим образом: Material.dailyifChanges();

Материал - локальная переменная, которая включает данные материала, такие как mat_no, mat_name, mat_grade

затемвызов программы dailyifChanges () function,

public void dailyifChanges()
    {
        DataAccess da = new SQLDataAccess();
        try
        {
            da.dailyifChanges(this.mat_no, this.mat_grade);
        }
        catch(Exception ex)
        {
            throw ex;
        }
    }

Наконец, эта функция принимает значение материала для поиска в базе данных, как показано ниже.

public override bool dailyifChanges(string mat_no, string grade)
    {
        string oraTXT = "UPDATE USER.INVENTORY SET DAILY = 'Y' ";
        oraTXT += "WHERE MATERIAL = '" + mat_no + "' ";
        oraTXT += "AND STD != '" + grade + "' ";
        using (OracleConnection conn = new OracleConnection(ConnectionString))
        {
            try
            {
                OracleCommand oracomd = new OracleCommand(oraTXT, conn);
                oracomd.Connection=conn;
                oracomd.CommandTimeout = GetTimeout(TableINVENTORY);
                conn.Open();
                oracomd.ExecuteScalar();
            }
            catch(Exception ex)
            {
                ex.Source += " SQLDataAccess.isSTDChanges()";

                string msg = DateTime.Now.ToString() + "\n";
                msg += ex.Source + ": " + ex.Message + "\n";
                msg += "[Query] " + oraTXT + "\n";
                msg += "[Con. Str.] " + ConnectionString;

                throw ex;
            }
            finally
            {
                conn.Close();
            }
            return true;
        }

    }

Я действительно не знаю, как этоошибка стала похожей и иногда случается.

...