小隐的博客

人生在世,笑饮一生
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2009-05-25 16:12  隐客  阅读(1009)  评论(0编辑  收藏  举报

由于操作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 
+ "==================");
            }

        }

    }

}

QQ交流