Я использую Sybase.AdoNet2.AseClient для доступа к данным Sybase ASE из консольного приложения C #.Не всегда, но время от времени я получаю System.NullReferenceException со следующим кодом.
Хорошо работает только с одним запущенным приложением, но завершается неудачей с этим исключением, если я одновременно запускаю 10 процессов на моей машине.
public void Dummy()
{
List<string> valueList = new List<string>();
AseParameter[] arParms = new AseParameter[1];
arParms[0] = new AseParameter("@date", AseDbType.Date);
arParms[0].Value = Convert.ToDateTime("1/08/2010");
AseCommand spCommand = new AseCommand();
spCommand.CommandType = CommandType.StoredProcedure;
spCommand.Connection = connection;
spCommand.CommandText = "MyStoredProcedure";
spCommand.Parameters.AddRange(arParms);
AseDataReader reader = spCommand.ExecuteReader();
while (reader.Read())
{
if (reader["MyColumn"] != DBNull.Value)
valueList.Add(reader["MyColumn"].ToString());
}
}
Это происходит в строке «while (reader.Read ())» и имеет следующий стек вызовов.
System.NullReferenceException: ссылка на объект не установлена на экземпляробъект.в Sybase.Data.AseClient1.AseDataReader.Read ()
в Sybase.Data.AseClient.AseDataReader.Read ()
в Dummy ()
Буду очень признателен, если кто-нибудь сможет мне помочь.