从vb.net转换为C#,但到C#中,ado代码枚举常量1还必须用ADODB.SearchDirectionEnum.adSearchForward替换,否则显示语法错误,有没有办法在C#中也保持用1而不用ADODB.SearchDirectionEnum.adSearchForward。
...................................................................................
转换后是:
rsShp.Find("商品ID=" + rsChkrsShpNo, 0, 1, null);
但显示1下滑红线表示语法错误。但还必须手工改成:
rsShp.Find("商品ID=" + rsChkrsShpNo, 0, ADODB.SearchDirectionEnum.adSearchForward, null);由于类似的语句太多,所以想保持rsShp.Find("商品ID=" + rsChkrsShpNo, 0, 1, null)不将1改成ADODB.SearchDirectionEnum.adSearchForward,而又不产生语法错误,谁有办法解决。

解决方案 »

  1.   

    rsShp.Find 不能重够这个方法吗?
      

  2.   

    rsShp 是什么类型的实例?可以修改其代码吗?可以考虑写个重载的 Find 方法。比如:class RsShp
    {
      // 原来的 Find 方法
      public object Find(string a, int b, ADODB.SearchDirectionEnum c, object d)
      {
        // ...
      }  // 新写的重载的 Find 方法
      public object Find(string a, int b, int c, object d)
      {
        return Find(a, b, (ADODB.SearchDirectionEnum)c, d);
      }
    }
      

  3.   


    rsShp 是:
    ADODB.Recordset rsShp = new ADODB.Recordset();
      

  4.   

    ADODB.Recordset,这个就没地方修改了。
      

  5.   

    估计楼主是从VB6转到VB.NET,然后再到C#的
    关键是既然用VB.NET了,为什么不使用ADO.NET还继续使用ADO呢,
    C#是强类型的,你不能整型或长整型来直接代替枚举,虽然这之间可以转换目前比较省事的方法应该是继承ado.RecordSet类重写一个Find方法,最好覆盖原来的Find方法,将第3个参数专声明为int类型不知道能不能继承的