public DbParameter CreateParameter(DbField field, object value)
        {
            DbParameter p = CreateParameter(field.FieldName, value);
            p.DbType = field.DbType;
            if (field.ProviderType >= 0)
            {
                string pName = DbMetadata.ParameterTypeName;
                if (!String.IsNullOrEmpty(pName))
                {
                    Type t = p.GetType();
                    PropertyInfo pi = t.GetProperty(pName);
                    pi.SetValue(p, field.ProviderType, null);
                }
            }

            //SetParameterValue(p, value);
            return p;
        }
 public int IndexOf(DbField value)
 {
     return IndexOf(value.FieldName);
 }
 public bool Contains(DbField value)
 {
     return (List.Contains(value));
 }
 public int Add(DbField value)
 {
     return (List.Add(value));
 }
 public void Remove(DbField value)
 {
     List.Remove(value);
 }
 public void Insert(int index, DbField value)
 {
     List.Insert(index, value);
 }
        public static DbField Create(DataRow dr)
        {
            DbField f = new DbField();

            f.FieldName = GetValue(dr, "ColumnName").IfNull(String.Empty);
            f.DataType = GetValue(dr, "DataType").IfNull("System.String");
            f.DetectDbType();

            f.ProviderType = GetValue(dr, "ProviderType").IfNull(-1);
            f.DefaultValue = GetValue(dr, "DefaultValue");
            f.FieldOrdinal = GetValue(dr, "ColumnOrdinal").IfNull(0);

            f._length = GetValue(dr, "ColumnSize").IfNull(0);
            f._precision = (short)GetValue(dr, "NumericPrecision").IfNull(0);
            f._scale = (short)GetValue(dr, "NumericScale").IfNull(0);
            f._notNull = !(GetValue(dr, "AllowDBNull").IfNull(true));

            f.IsLong = GetValue(dr, "IsLong").IfNull(false);
            f.IsReadOnly = GetValue(dr, "IsReadOnly").IfNull(false);
            f.IsRowVersion = GetValue(dr, "IsRowVersion").IfNull(false);
            f.IsUnique = GetValue(dr, "IsUnique").IfNull(false);
            f.IsKey = GetValue(dr, "IsKey").IfNull(false);
            f.IsAutoIncrement = GetValue(dr, "IsAutoIncrement").IfNull(false);

            f.BaseSchemaName = GetValue(dr, "BaseSchemaName").IfNull(String.Empty);
            f.BaseCatalogName = GetValue(dr, "BaseCatalogName").IfNull(String.Empty);
            f.BaseTableName = GetValue(dr, "BaseTableName").IfNull(String.Empty);
            f.BaseFieldName = GetValue(dr, "BaseColumnName").IfNull(String.Empty);

            return f;
        }