首页 > 学院 > 开发设计 > 正文

VisualBasic控件的使用

2019-11-18 17:43:22
字体:
来源:转载
供稿:网友

使用ADOData控件

    ADOData控件使用MicrosoftActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合OLEDB规范的数据源。使用VisualBasic的类模块也可以很方便地创建子集的数据提供者。
    尽管可以在应用程序中直接使用ActiveX数据对象,但ADOData控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。

    在VisualBasic的“工具箱”中,不少控件都可以作为数据绑定的控件,包括复选框、组合框、图像、标签、列表框、图片框以及文本框控件等。此外,VisualBasic还包括了若干种数据绑定的ActiveX控件,诸如DataGrid、DataCombo、Chart以及DataList控件等。用户也可以创建自己的数据绑定的ActiveX控件,或从其他开发商购买控件。
    VisualBasic以前的版本提供了内在的Data控件和RemoteData控件(RDC)来进行数据访问。这两种控件仍包括在VisualBasic中,以提供向后兼容。不过,因为ADO的适应性更广,因此建议用户使用ADOData控件来创建新的数据库应用程序。
    详细信息关于数据绑定的控件的完整列表位于“绑定到ADOData控件的控件”中。要了解如何使用这些内在的Data控件或RemoteData控件,请参阅“使用Data控件”或“使用RemoteData控件”。关于创建数据提供者的详细信息,请参阅“创建数据识别类”。

    可能的用法
     连接一个本地数据库或远程数据库。
     打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、或存储过程、或该数据库中的表的视图的记录集合。
     将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。
     添加新的记录,或根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。
    要创建一个客户或前端数据库应用程序,应在窗体中添加ADOData控件,以及其它所需要的任何VisualBasic控件。可以根据您的需要在窗体中放置多个ADOData控件。不过,请注意,这种控件是一种相当“昂贵”的创建连接的方法,应在第一个控件至少有两个连接,且以后的每个控件至少多一个连接时使用。

    用最少的代码创建一个前端数据库应用程序
    通过在设计时设置一些属性,可以用最少的代码来创建一个数据库应用程序。如果正在使用OLEDB数据源,则相应的Microsoft数据链接名称(DataLinkName)(.MDL)必须是在您的机器上创建的。请参阅“创建Northwind的OLEDBDataLink”,以获得一个循序渐进的示例。
    要创建一个简单的前端数据库应用程序:
    1.在窗体上放置一个ADOData控件(该图标的工具提示为"ADODC")如果该控件不在“工具箱”中,请按CTRL T键,显示“部件”对话框。在这个“部件”对话框中,单击“MicrosoftADODataControl”。
    2.在“工具箱”中,单击选定“ADOData控件”。然后按F4键显示“属性”窗口。
    3.在“属性”窗口中,单击“ConnectionString”显示“ConnectionString”对话框。
    4.如果您已经创建了一个Microsoft数据链接文件(DataLinkfile)(.MDL),请选择“使用OLEDB文件”并单击“浏览”,以找到计算机上的文件。如果使用DSN,则单击“使用ODBC数据源名”,并从框中选择一个DSN,或单击“新建”创建一个。如果想创建一个连接字符串,请选择“使用ConnectionString”,单击“生成”,然后使用“数据链接属性”对话框创建一个连接字符串。在创建连接字符串后,单击“确定”。ConnectionString属性将使用一个类似于下面这一行的字符串来填充:
    driver={SQLServer};server=bigsmile;uid=sa;pwd=pwd;database=pubs
    5.在“属性”窗口中,将“记录源”属性设置为一个SQL语句。例如:SELECT*FROMTitlesWHEREAuthorID=72在访问一个表时,应始终包括一个WHERE子句。如果这样做失败,则会锁定整个表,这样对其他用户将是一个严重的障碍。
    6.在窗体上再放置一个“文本框”控件,用来显示数据库信息。
    7.在其“属性”窗口中,将Text1的“数据源”属性设为ADOData控件的名称(ADODC1)。这样就将这个文本框和ADOData控件绑定在一起。
    8.在其“属性”窗口中,单击“数据字段”将下拉得到一个可用的字段列表。单击所要显示的字段的名称。
    9.对希望访问的其它每个字段重复第6、7、8步。
    10.按F5键运行该应用程序。用户可以在ADOData控件中使用四个箭头按钮,从而允许用户到达数据的开始、记录的末尾或在数据内从一个记录移动到另一个记录。
    在程序中设置ConnectionString、Source、DataSource以及DataField下面的代码演示了如何在程序中设置这四个属性。注意设置DataSource属性要使用Set语句。
    PRivateSubForm_Load()
      WithADODC1
        .ConnectionString="driver={SQLServer};"&_
        "server=bigsmile;uid=sa;pwd=pwd;database=pubs"
        .RecordSource="Select*FromTitlesWhereAuthorID=7"
      EndWith
      SetText1.DataSource=ADODC1
      Text1.DataField="Title"
    EndSub

    ADOData控件的事件
    ADOData控件提供了若干个可以编程的事件。下表说明了这些事件及其何时产生,不过这个表不是一个关于这些事件何时发生的所有条件的完整列表。更完整的信息,请参阅各个事件的参考主题。


    详细信息如果试图循序渐进地使用ADOData控件,请参阅“使用DataGrid和ADO数据控件创建一个简单的数据库应用程序”,“创建一个简单的DataCombo应用程序”以及“创建一个连接DataList控件的DataGrid”。

    设置ADOData控件的与数据库相关的属性
    当创建连接时,您可以使用下列三种源之一:一个连接字符串,一个OLEDB文件(.MDL),或一个ODBC数据源名称(DSN)。当您使用DSN时,则无须更改控件的任何其它属性。
    不过,如果对数据库技术比较了解,可以更改在ADOData控件中出现的其它的一些属性。下面的列表说明了该控件的与数据库相关的一些属性。这个列表同时也建议了设置这些属性的逻辑顺序。
    注意数据库技术是比较复杂的,下列的建议并不意味着一定要视为规则。
    1.ConnectionString—ConnectionString属性是一个字符串,可以包含进行一个连接所需的所有设置值。在该字符串中所传递的参数是与驱动程序相关的。例如,ODBC驱动程序允许该字符串包含驱动程序、提供者、缺省的数据库、服务器、用户名称以及密码等。
    2.UserName—用户的名称,当数据库受密码保护时,需要指定该属性。和Provider属性类似,这个属性可以在ConnectionString中指定。如果同时提供了一个ConnectionString属性以及一个UserName属性,则ConnnectionString中的值将覆盖UserName属性的值。
    3.PassWord—在访问一个受保护的数据库时也是必需的。和Provider属性、UserName属性类似,如果在ConnectionString属性中指定了密码,则将覆盖在这个属性中指定的值。
    4.RecordSource—这个属性通常包含一条语句,用于决定从数据库检索什么信息。
    5.CommandType—CommandType属性告诉数据提供者Source属性是一条SQL语句、一个表的名称、一个存储过程还是一个未知的类型。
    6.CursorLocation—这个属性指定光标的位置,是位于客户还是位于服务器
上。这一决策将影响您对下面几个属性的设置。
    7.CursorType—CursorType属性决定记录集是静态类型、动态类型、还是键集光标类型。
    8.LockType—LockType属性决定当其他人试图更改您正在编辑的数据时,如何锁定该数据。如何设置这个LockType属性是一个复杂的决策,取决于多个因素。
    9.Mode—Mode属性决定想用记录集进行什么操作。例如,如果只是想要创建一个报告,可以将该属性设为只读来获得性能的改善。
    10.MaxRecords—这个属性决定光标的大小。如何决定这个属性的值取决于所检索的记录的大小,以及计算机的可用资源(内存)的多少。一个大的记录(包括很多列以及长字符串)比小记录要花费更多的资源。因此,MaxRecords属性就不能太大。
    11.ConnectionTimeout—设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。
    12.CacheSize—CacheSize属性指定从光标中可以检索多少条记录。如果将CursorLocation设为客户端,则这个属性只能设为一个较小的数目(可能为1),不会有任何不利的影响。如果光标的位置位于服务器端,则可以对这个数进行调整,将其设为你希望一次可以查看的行数。例如,如果使用DataGrid控件来查看30行,则可以将CacheSize设为60,这样不必检索更多的数据就可以进行滚动。
    13.BOFAction、EOFAction—这两个属性决定当该控件位于光标的开始和末尾时的行为。提供的选择包括停留在开始或末尾、移动到第一个或最后一个记录、或添加一个新记录(只能在末尾)。

    绑定到ADOData控件的控件
    任何具有DataSource属性的控件都可以绑定到一个ADOData控件。下面的内在控件都可以绑定到ADOData控件:
    复选框(CheckBox)
    组合框(ComboBox)
    图像(Image)
    标签(Label)
    列表框(ListBox)
    图片框(PictureBox)
    文本框(TextBox)
    VisualBasic的所有版本中也提供下述数据绑定的ActiveX控件:
    DataList
    DataCombo
    DataGrid
    MicrosoftHierarchicalFlexGrid
    RichTextBox
    MicrosoftChart
    DateTimePicker
    ImageCombo
    MonthView
    最后,用户可以使用DataBinding对象创建自己的数据绑定的ActiveX控件。
    详细信息关于自己创建数据绑定控件的详细内容,请参阅“创建数据绑定用户控件”。

->


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表