我正在使用 Sybase.AdoNet2.AseClient 从控制台 C# 应用程序访问 Sybase ASE 数据。并非总是如此,但有时我会使用以下代码得到 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()
如果有人可以帮助我,将不胜感激。