获取Access数据库字段的所有属性(转)

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

由于操作Access数据库,需要用增加字段,但又不知道字段的属性怎么设置,好不容易找到了一些资料,接凑着把字段属性找到了。

然后又找了一些资料,用一个最笨的办法把字段的所有属性加上。当然,我一直不明白,为什么微软不把这些属性写出来,而是用了一个集合,非常不明白。

首先自己建立一个access数据库,建表,建字段,你想设置字段的什么属性,自己设置好。

然后用代码读这个数据库,然后列举它的属性,需要引用ado 和 adox

目前列举的属性有:

0 Autoincrement
1 Default
2 Description
3 Nullable
4 Fixed Length
5 Seed
6 Increment
7 Jet OLEDB:Column Validation Text
8 Jet OLEDB:Column Validation Rule
9 Jet OLEDB:IISAM Not Last Column
10 Jet OLEDB:AutoGenerate
11 Jet OLEDB:One BLOB per Page
12 Jet OLEDB:Compressed UNICODE Strings
13 Jet OLEDB:Allow Zero Length
14 Jet OLEDB:Hyperlink

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ADOX;
using ADODB;

namespace EnumColumnProperties
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
           
            ADODB.ConnectionClass conn = new ADODB.ConnectionClass ();
            string ConnectionString = @"Provider=Microsoft.Jet.Oledb.4.0;Data Source=D:\FirstCatalog.mdb;Persist Security Info=False";
            conn.Open(ConnectionString,"","",0);
           
            
            ADOX.CatalogClass catalog = new ADOX.CatalogClass();
            catalog.ActiveConnection = conn;
            foreach (Column co in catalog.Tables[0].Columns )
            {
                foreach (ADODB.Property pr in co.Properties)
                {
                    Console.WriteLine(pr.Name);
                }
                Console.WriteLine(co.Name + "==================");
            }
        }
    }
}

posted @ 2009-06-01 10:03  netcorner  阅读(585)  评论(0编辑  收藏  举报