Компиляция старого кода в C # для ошибок сборки SQL - PullRequest
1 голос
/ 19 августа 2011

У меня есть старый код, который я только что декомпилировал (исходный код был потерян, но у нас он есть).

Я сейчас пытаюсь перекомпилировать его, но у меня есть следующие ошибки:

 Error  1   'System.Data.SqlTypes.SqlBoolean.operator true(System.Data.SqlTypes.SqlBoolean)': cannot explicitly call operator or accessor   C:\NCESTableGenerator\NCESTableGenerator\db\OutputTableDAO.cs   89  32  NCESTableGenerator

следующий фрагмент кода:

 if (SqlBoolean.op_True(reader.GetSqlInt32(0) == 1))

и

 Error  3   Cannot convert type 'bool' to 'sbyte'   C:\NCESTableGenerator\NCESTableGenerator\Formatter.cs   172 30  NCESTableGenerator

на следующем фрагменте кода:

 public static string GetEstimateFloatStr(double data, int sn, int num, ref bool roundedZero, ref bool lowN)
    {
        if (sn <= 30)
        {
            sbyte num1 = (sbyte) lowN;
            lowN = true;
            return "‡";

Есть идеи?

1 Ответ

2 голосов
/ 19 августа 2011

В первой строке я думаю, что это безопасно переписать как

if (reader.GetSqlInt32(0) == 1)

и вторая - неприятная строка (похоже, ее можно удалить из-за возврата), но если вы не можете удалить ее, измените ее на

Int16 num1 = (Int16)lowN;

или

char num1 = (char)lowN;

Поскольку Sbyte не совместим с CLS, как указано в MSDN.

...