如何使用C#或者VB.NET读写Access数据库的标题(Caption)、描述(Description)等字段信息?
2009-10-14 22:55
701 查看
前几天有人问:如何在使用 C# 或者 VB.NET 读写 Access 数据库的标题信息?Access 数据库的有些信息不能通过 ADO.NET 来读取的,需要使用 DAO 来进行读写,这些属性包括:CaptionColumnHiddenColumnOrderColumnWidthDecimalPlacesDescriptionFormatInputMask等等,使用 DAO 可以采用下面的方法进行读写,附上完整源代码:C# 代码///需要添加引用 Microsoft DAO 3.6 Object Library///在VS 2008和Access 2003下测试通过const int dbUseJet = 2;const int dbPropNotFound = 3270;const dao.DataTypeEnum dbText = dao.DataTypeEnum.dbText;String dbName = @"E:/WebSite1/MengXianhui/db3.mdb";dao.Workspace DAOWorkspace;dao.Database DAODatabase;dao.DBEngine DAODBEngine = new dao.DBEngine();//创建一个工作区DAOWorkspace = DAODBEngine.CreateWorkspace("WorkSpace", "Admin", "", dbUseJet);//打开数据库DAODatabase = DAOWorkspace.OpenDatabase(dbName, false, false, null);dao.TableDef DAOTable;dao.Field DAOField;// 表对象DAOTable = DAODatabase.TableDefs["Table1"];DAOField = DAOTable.Fields["BirthDay"];//读取 UserName 字段的 “标题”属性,如果标题没有设置,则会抛出异常。//如果标题不存在,我们就添加一个标题String CaptionText;try{ CaptionText = DAOField.Properties["Caption"].Value.ToString();}catch{ if (dbPropNotFound == DAODBEngine.Errors[0].Number) { //此时属性不存在,添加一个属性 dao.Property dbProperty = DAOField.CreateProperty("Caption", dbText, "出生日期字段标题", false); DAOField.Properties.Append(dbProperty); DAOField.Properties.Refresh(); CaptionText = DAOField.Properties["Caption"].Value.ToString(); } else { CaptionText = "无此标题,并且未能创建标题。"; }}finally{ DAODatabase.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(DAOField); System.Runtime.InteropServices.Marshal.ReleaseComObject(DAOTable); System.Runtime.InteropServices.Marshal.ReleaseComObject(DAOWorkspace); System.Runtime.InteropServices.Marshal.ReleaseComObject(DAODBEngine); System.Runtime.InteropServices.Marshal.ReleaseComObject(DAODatabase); DAOField = null; DAOTable = null; DAOWorkspace = null; DAOWorkspace = null; DAODatabase = null; GC.WaitForPendingFinalizers(); GC.Collect();}MessageBox.Show("BirthDay 字段的标题是:" + CaptionText);VB.NET写法类似,网上也有C#转换成VB.NET的工具,如果实在转换不成,可以继续找我。
相关文章推荐
- C#中如何使用VB.NET的My关键字
- 使用asp.net和C#如何存取Sql Server2000中的Image(16)类型的字段?
- 如何使用NET Reactor为您的.Net(C#,VB.Net) 源代码加密!
- 如何使用<Beginning ASP.NET 3.5 in C# and VB>书中的示例代码
- 开发人员在使用Aspose.Pdf for .NET时如何用C#和VB两种代码添加附件到PDF文档?
- C#如何使用REST接口读写数据
- c# 如何读取程序集中的描述、公司名称、版权等信息?
- 如何使用 Visual C# .NET 对 DataGrid Windows 控件执行分页
- 教你如何在 sql server 2005 使用 sql 语句获取字段的说明信息
- 使用 GetOleDbSchemaTable 和 Visual C# .NET 检索架构信息-----http://support.microsoft.com/kb/309681/zh-cn#
- vb.net如何判断shell完成,或者等待shell完成
- C#如何从文本文件读取信息并使用ArrayList类向用户显示该信息
- 如何使用 Visual VB .NET 对 DataGrid Windows 控件执行分页
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——AlbumView相册控件的使用方式
- .net(C#)中String.Format如何使用
- 如何使用 ADO.NET 和 Visual C# .NET 调用带参数的存储过程
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- [转]如何高效使用SQLite .net (C#)
- ASP.NET 2.0使用user profile储存信息前,如何部署aspnetdb.mdf和正确建立连接
- 使用C#(.NET)来实现验证信息(邮箱、纯数字、电话号码、汉字、身份证号等)