现在有如下函数枚举类型作为参数作为传递:        private void CreateField(CatalogClass cat, TableClass tbl, string fieldName, DataTypeEnum type, bool isZero, int DefineSize)
        {
            ColumnClass col = new ColumnClass();
            col.ParentCatalog = cat;
            col.Type = type;//col.Type的类型为DataTypeEnum 
            col.Name = fieldName;
            col.Properties["Jet OLEDB:Allow Zero Length"].Value = isZero;
            tbl.Columns.Append(col, type ,DefineSize);
        }使用的时候是这样CreateField(cat, tbl, "字段一", DataTypeEnum.adInteger, false, 25);提示类型无效~~但改为如下时
col.Type = DataTypeEnum.adInteger;
tbl.Columns.Append(col, DataTypeEnum.adInteger,DefineSize);

解决方案 »

  1.   

    接上面
    还没编辑完 就不小心发送了但改为如下时
    col.Type = DataTypeEnum.adInteger;
    tbl.Columns.Append(col, DataTypeEnum.adInteger,DefineSize);就成功了?参数传递无效?还真不知道什么问题
      

  2.   

    col.Type = DataTypeEnum.adInteger;
    tbl.Columns.Append(col, DataTypeEnum.adInteger,DefineSize);不规范
      

  3.   

    c#中可以用枚举类型做参数,不过参数不能有默认值
    ADOX.ColumnClass col = new ADOX.ColumnClass();
    col.ParentCatalog = cat;
    col.Type = ADOX.DataTypeEnum.adInteger;
      

  4.   

    你定义的参数类型是DataTypeEnum CreateField(CatalogClass cat, TableClass tbl, string fieldName, DataTypeEnum type, bool isZero, int DefineSize)你引用的参数类型是
    DataTypeEnum.adInteger这样如何匹配啊 
      

  5.   

    你误会我的意思了我说我在调试的时候将col.Type = type;
    改为
    col.Type = DataTypeEnum.adInteger;后时候程序通过 也就是说没有使用到参数的时候通过 也就是参数出了问题但是不知道参数出的是什么问题~~
      

  6.   

    你用的是tbl.Columns.Append(col, DataTypeEnum.adInteger,DefineSize);
    DataColumnCollection..::.Add 方法三个参数的,只有一个
    Add(String, Type, String) 而你的DefineSize是int类型,能这样调用?
      

  7.   


    是我 误解了那如果我要将如下参数传入:那函数的参数应该是什么呢?    public enum DataTypeEnum
        {
            adEmpty = 0,
            adSmallInt = 2,
            adInteger = 3,
            adSingle = 4,
            adDouble = 5,
            adCurrency = 6,
            adDate = 7,
            adBSTR = 8,
            adIDispatch = 9,
            adError = 10,
            adBoolean = 11,
            adVariant = 12,
            adIUnknown = 13,
            adDecimal = 14,
            adTinyInt = 16,
            adUnsignedTinyInt = 17,
            adUnsignedSmallInt = 18,
            adUnsignedInt = 19,
            adBigInt = 20,
            adUnsignedBigInt = 21,
            adFileTime = 64,
            adGUID = 72,
            adBinary = 128,
            adChar = 129,
            adWChar = 130,
            adNumeric = 131,
            adUserDefined = 132,
            adDBDate = 133,
            adDBTime = 134,
            adDBTimeStamp = 135,
            adChapter = 136,
            adPropVariant = 138,
            adVarNumeric = 139,
            adVarChar = 200,
            adLongVarChar = 201,
            adVarWChar = 202,
            adLongVarWChar = 203,
            adVarBinary = 204,
            adLongVarBinary = 205,
        }
      

  8.   

    是我 误解了那如果我要将如下参数传入:那函数的参数应该是什么呢?
    C# code    public enum DataTypeEnum
        {
            adEmpty = 0,
            adSmallInt = 2,
            adInteger = 3,
            adSingle = 4,
            adDouble = 5,
            adCurrency = 6,
            adDate = 7,
            adBSTR = 8,
            adIDispatch = 9,
            adError = 10,
            adBoolean = 11,
            adVariant = 12,
            adIUnknown = 13,
            adDecimal = 14,
            adTinyInt = 16,
            adUnsignedTinyInt = 17,
            adUnsignedSmallInt = 18,
            adUnsignedInt = 19,
            adBigInt = 20,
            adUnsignedBigInt = 21,
            adFileTime = 64,
            adGUID = 72,
            adBinary = 128,
            adChar = 129,
            adWChar = 130,
            adNumeric = 131,
            adUserDefined = 132,
            adDBDate = 133,
            adDBTime = 134,
            adDBTimeStamp = 135,
            adChapter = 136,
            adPropVariant = 138,
            adVarNumeric = 139,
            adVarChar = 200,
            adLongVarChar = 201,
            adVarWChar = 202,
            adLongVarWChar = 203,
            adVarBinary = 204,
            adLongVarBinary = 205,
        }
    还是枚举,在用的时候转下int。