在C#中编译旧代码以解决SQL程序集错误

时间:2011-08-18 22:27:15

标签: c# asp.net visual-studio assemblies compilation

我有旧的代码,我只是反编译(源丢失但我们拥有它)。

我现在正在尝试重新编译它,但有这些错误:

 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 个答案:

答案 0 :(得分:2)

在第一行中,我认为将其重写为

是安全的
if (reader.GetSqlInt32(0) == 1)

和第二个麻烦的线(看起来因为返回可以删除)但如果你不能删除它改为

Int16 num1 = (Int16)lowN;

char num1 = (char)lowN;

由于Sbyte不符合MSDN列出的CLS标准。