Я унаследовал часть кода на работе, и я только что заметил довольно тривиальную, но странную небольшую причуду с ним. Так что, может быть, кто-то может спасти меня, настраивая чистую среду .NET 2.0, чтобы проверить это.
Существует таблица SQL2K5, содержащая столбец с именем IsEnabled BIT NOT NULL
Из этой таблицы есть выборка
Существует фрагмент кода на C #, который с помощью SQL Reader вызывает SPROC, просматривает строки результатов и записывает часть этой информации в файл журнала, а также выполняет другие действия.
using (SqlDataReader reader = DAL.SqlHelper.ExecuteReader(connStr, "usp_MySproc"))
{
while (reader.Read())
{
//code to do stuff...
string s = reader["IsEnabled "].ToString(); //exactly like this...
//code to concatenate `s` with other values
//log it all to file
}
}
Странно то, что в некоторых старых файлах журналов это значение записывается как 1
или 0
, тогда как в новых файлах журналов оно записывается как true
или false
.
Итак, произошло одно из следующих событий. Это было вызвано:
- Кто-то меняет код
- Кто-то изменяет тип данных в таблице с int -> bit
- Кто-то изменил тип данных в sproc с int -> bit (может быть, там был приведен приведение / преобразование, которое было удалено)
- установка .NET 3.5 на всех наших производственных серверах несколько месяцев назад, и даты, похоже, совпадают с изменениями в файлах журналов,
В течение последнего часа я гулял с Google, ища изменения между .net 2.0 и .net 3.5, но на меня ничего не выходит.
Кто-нибудь может пролить свет на это?