Странное исключение NullReferenceException для ExecuteReader - PullRequest
0 голосов
/ 08 августа 2011

, когда я пытаюсь выполнить следующий код, в ExecuteReader возникает исключение NullReferenceException:

static public IDataReader executeReader(string query, string connectionString, string databaseType)
    {
        switch(databaseType)
        {               
            case "SqlServer":
                //stuff for Sql Server      
            case "DB2":
                iDB2Connection myConnectionDB2 = new iDB2Connection(connectionString);

                iDB2Command sqlCommandDB2 = new iDB2Command(query,  myConnectionDB2);
                sqlCommandDB2.CommandTimeout=0;
                try
                {                       
                    sqlCommandDB2.Connection.Open();
***The exception is raised here...***
                    return sqlCommandDB2.ExecuteReader(CommandBehavior.CloseConnection);
                }
                catch (Exception e)
                {
                    sqlCommandDB2.Dispose();
                    myConnectionDB2.Close();
                    throw new Exception("Error in DBHelper:ExeSQL()-> " + e.ToString());
                }       
            default:
                //stuff for Oracle
        }                           
    }

Вот исключение сообщения:

System.NullReferenceException: La Référence d'objet n'est pas définie Вне всякого сомнения. в Microsoft.Win32.Win32Native.CopyMemoryUni (StringBuilder pdst, IntPtr psrc, IntPtr sizetcb) в System.Runtime.InteropServices.Marshal.PtrToStringUni (IntPtr ptr) в IBM.Data.DB2.iSeries.MPHostCol.setHostColInfo (MpDcHostColumnInfo dcHostColInfo) бла-бла-блах, пока не получится строка выше.

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

1 Ответ

0 голосов
/ 09 августа 2011

Блин, обновление от V5R3 до V5R4 решило ошибку. Простое 15-минутное обновление решило 3 дня удара головой. Рад, что способствовал:)

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