在c#中编译旧代码以解决SQL汇编错误

本文关键字:解决 SQL 汇编 错误 代码 编译 | 更新日期: 2023-09-27 18:06:08

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

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

 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 "‡";

任何想法?

在c#中编译旧代码以解决SQL汇编错误

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

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

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

Int16 num1 = (Int16)lowN;

char num1 = (char)lowN;

由于Sbyte不符合MSDN所列出的cls,