`
tuyinbo
  • 浏览: 21795 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

阅读更多
前几天有人问:如何在使用 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的工具,如果实在转换不成,可以继续找我。
分享到:
评论

相关推荐

    VB Caption属性综合举例

    VB Caption属性综合举例.rar

    VB让窗口标题栏闪烁效果源码.rar

    VB让窗口标题栏闪烁效果源码,不过我测试没有发现标题栏闪烁,咋回事呢?实现的思路是:声明API函数Flashwindow,然后编写下面的代码:  Call FlashWindow(hwnd, 1)  If Me.Caption = "闪烁的标题栏" Then  Me....

    VB6.0 将数据库数据传给Word.rar

    VB6.0 将数据库数据传给Word,将数据库内容发送给Word,在Word中打开Access中的数据内容:  '创建word应用程序,这一句话打开word2000  Set wdapp = CreateObject("Word.Application")  '在word中添加一个新文档 ...

    基于VB客票中心售票系统

    Caption = "备份数据库" ClientHeight = 1695 ClientLeft = 45 ClientTop = 330 ClientWidth = 4680 Icon = "FrmBackUp.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MDIChild = -1 'True ...

    VB测试键盘是被按下Shift键、Ctrl键等功能键.rar

    VB测试键盘功能键,判断键盘上的Shift键、Ctrl键、Alt键是否被按下过,主要是根据键盘的返回值来判断出按下了什么键,下面来细看代码:  Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)  '...

    listView实现文字编辑的自动换行

    listView实现文字编辑的自动换行.

    定时关机VB小程序 含源码窗体

    可以设置定时关机,一段时间后关机 Private Sub Command1_Click() ...If (Text1.Text = Label2.Caption) Then Shell "cmd /c shutdown -s -t 5" Timer1.Enabled = False Form2.Show End If End Sub

    VB 检测绑定控件值是否被修改.rar

    VB 检测绑定控件值是否被修改,Data控件的标题设为当前记录号加1,如果被修改则以MsgBox的方式弹出提示。下面是相关代码:  Private Sub Data1_Reposition()  Data1.Caption = Data1.Recordset.AbsolutePosition 1...

    Treeview连接Access(自建一个类)

    自建一个类用来操作Treeview和Access; 通过数据库中的数据自动添加到Treeview控件中,不过数据控件用的是ADO组件,另外数据库中存放Treeview节点数据表的结构位:ID:integer;PID:Integer;Caption:string;字段名成...

    C# Image Caption 源码

    C# Image Caption 源码 博客地址:https://lw112190.blog.csdn.net/article/details/135292713

    VB整源码判断字符串中某一字符是否大写.rar

    VB编写完整源码判断字符串中某一字符是否大写,执行下面的代码,这个例子简单哦,不多介绍了,直接看代码吧:  If Asc(Mid(Text1, Val(Text2), 1)) >= 65 And Asc(Mid(Text1, Val(Text2), 1))  Label2.Caption = ...

    vb 贪吃蛇 源码 --from:胡宸源

    pg.Top Then n = n + 1 Label2.Caption = Label2.Caption + 100 If n = 18 Then Timer1.Enabled = False MsgBox "过关" End End If Timer1.Interval = Timer1.Interval - 35 sn(n).Picture = she.Picture ...

    C# Image Caption图像生成文字描述图文描述生成源码

    测试环境: vs2019 net framework4.7.2 onnxruntime1.16.3 opencvsharp4.8 博客地址: https://blog.csdn.net/FL1623863129/article/details/135305444 视频演示: bilibili.com/video/BV1Ba4y1z7Df

    vb程序屏幕飘雪!!!

    Me.Caption = "桌面飘雪" '设置窗口标题 '设置计时器,Timer1用于画单帧,Timer2用于风向变化 Timer1.Enabled = True Timer1.Interval = 10 Timer2.Enabled = True Timer2.Interval = 2000 Randomize '初始化...

    Len方法判断字符串变量的长度(VB6.0源代码编写)Dim a As String

    Len方法判断字符串变量的长度(VB6.0源代码编写)Dim a As String a = Text1.Text LSet a = "1234" Label1.Caption = "你的字符串变量长度是:" & Len(a) & "个字符

    MinHook.NET:MinHook API挂钩库的AC#端口

    MinHook.NET介绍MinHook.NET是Tsuda Kageyu( )出色的MinHook库的纯托管C#端口。 该库具有内联挂钩本机API调用的功能,它利用.NET委托来处理绕道和原始功能(通常用绕道来调用)。 该项目试图保持原始MinHook库的...

    Delphi结合数据库生成Treeview树控菜单视图类.rar

    Delphi树形菜单类以及例子,结合数据库生成Treeview树控菜单视图,你可了解下如何按照节点在数据库中的编号查找节点、如何查找节点在数据库中的数据、填充节点等。这个类通过数据库中的数据自动添加到Treeview控件中...

    VB 为无标题栏窗体添加菜单.rar

    VB 为无标题栏窗体添加菜单,为无标题栏窗体添加菜单,添加了一种弹出式菜单,窗口美化的挺漂亮,如示例截图所示,源码运行于VB6.0环境。相关代码:  Select Case Index  Case 0 '添加菜单  PopupMenu Frm_menu....

    界面开发(c++ 、.net)

    这是一款真正意义上适合软件界面开发的C++界面库。采用XML管理GDI资源(如:图片、字体、颜色等),最大程度将...并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、PowerBuilder、易语言等多种计算机语言开发。

    我编的一个小程序,这个程序打开来是VB好用、易学,又有趣!!

    Caption = "CH01_01 Hello VB" ClientHeight = 3090 ClientLeft = 60 ClientTop = 450 ClientWidth = 4680 LinkTopic = "Form1" ScaleHeight = 3090 ScaleWidth = 4680 StartUpPosition = 3 'Windows ...

Global site tag (gtag.js) - Google Analytics