如何使用C#或者VB.NET读写Access数据库的标题(Caption)、描述(Description)等字段信息_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 如何使用C#或者VB.NET读写Access数据库的标题(Caption)、描述(Description)等字段信息

如何使用C#或者VB.NET读写Access数据库的标题(Caption)、描述(Description)等字段信息

 2011/1/14 7:39:32  tuyinbo  http://tuyinbo.javaeye.com  我要评论(0)
  • 摘要:前几天有人问:如何在使用C#或者VB.NET读写Access数据库的标题信息?Access数据库的有些信息不能通过ADO.NET来读取的,需要使用DAO来进行读写,这些属性包括:?Caption?ColumnHidden?ColumnOrder?ColumnWidth?DecimalPlaces?Description?Format?InputMask等等,使用DAO可以采用下面的方法进行读写,附上完整源代码:///需要添加引用MicrosoftDAO3
  • 标签:.net C# Access 使用 net 数据库 数据 标题 ACCESS数据库 access数据 vb.net
前几天有人问:如何在使用 C# 或者 VB.NET 读写 Access 数据库的标题信息?Access 数据库的有些信息不能通过 ADO.NET 来读取的,需要使用 DAO 来进行读写,这些属性包括:

?Caption
?ColumnHidden
?ColumnOrder
?ColumnWidth
?DecimalPlaces
?Description
?Format
?InputMask
等等,使用 DAO 可以采用下面的方法进行读写,附上完整源代码:

/// 需要添加引用 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的工具,如果实在转换不成,可以继续找我。
发表评论
用户名: 匿名