获取Access数据库字段的所有属性(转)
由于操作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 + "==================");
}
}
}
}