Прерывистый столбец не принадлежит исключению таблицы - PullRequest
1 голос
/ 12 августа 2011

У меня есть хранимая процедура, которая вызывается сотни раз в минуту. Время от времени я получаю исключение, что в запросе отсутствует столбец. Вот исключение:

System.Web.HttpUnhandledException: было сгенерировано исключение типа 'System.Web.HttpUnhandledException'. ---> System.ArgumentException: столбец SubjectID не принадлежит таблице.

[ArgumentException: столбец SubjectID не принадлежит таблице.] System.Data.DataRow.GetDataColumn (String columnName) +1775157 System.Data.DataRow.get_Item (String columnName) +13 System.Data.DataTableReader.get_Item (имя строки) + 66

Вот C #, который вызывает сохраненный процесс:

DataTableReader dtr;
        dtr = Util.getDepartmentsByTerm(term);
        ddlSubject.Items.Add(new ListItem("Select A Subject...", ""));
        while (dtr.Read())
        {
            //The following line throws the exception!
            var value = (string)dtr["SubjectID"];
            var text = (string)dtr["title"];
            var count = (int) dtr["Count"];
            //if (!text.Contains("(0)"))
            if(count > 0)
                ddlSubject.Items.Add(new ListItem(text, value));
        }

Довольно просто ... вот хранимая процедура:

ALTER PROCEDURE [dbo].[selectDepartmentsByTerm] 

( 

@term nvarchar(50),
@version int

) 

AS     
SELECT SubjectID, Subject as Title,(select count(distinct courseno)
  from RegistrationBlock WITH (NOLOCK)
 where RegistrationBlock.Subject = Subjects.SubjectID
   and RegistrationBlock.version = @version
   and (@term = '' OR RegistrationBlock.term = @term)) as "Count"
  FROM Subjects WITH (NOLOCK)
 where Version = @version
 order by subject
GO

1 Ответ

1 голос
/ 18 августа 2011

Комментарий Тома Х. к моему вопросу решил эту проблему:

Я видел сообщение, в котором говорится, что эта проблема может быть вызвана повреждением в пуле соединений. Убедитесь, что все ваши соединения закрыты должным образом. Вы можете прочитать еще несколько способов диагностики / устранения проблемы здесь: http://www.ksvali.com/2010/08/solution-to-random-error-column-does-not-belong-to-table/

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