VB.NET数据库工具教程之三

来源:岁月联盟 编辑:zhu 时间:2007-01-31
   

  在前面的文章中我们介绍了Visual Studio.NET集成开发环境和如何创建Winform应用程序。在一节中我们将简要介绍其它几种类型的应用软件以及如何创建数据库。

  其他几种类型的应用程序主要有:

  类库━━这是一组我们希望从其它应用程序中访问的组件,它最典型的用途是中间层的企业规则层,但它还有其它用途。数据库组件是类库的一部分,我们也可以使用类库开发一些被继承的类。

  Windows控件库━━这一类型的项目包含Windows用户控件,我们会使用它开发Windows窗体上的控件。

  ASP.NET Web服务━━它也是中间层组件,但它通过HTTP协议被访问。所有通讯都是由SOAP协议处理的,数据被当作XML传输。ASP.NET Web服务可以使用基于web的客户端或基于GUI的Windows客户端。

  Web控件库━━在Web窗体中使用的控件组。

  Windows━━这是被作为Windows服务在后端运行的应用程序,这种服务的例子包括SQL Server、IIS服务以及事件日志等。

  服务器管理器

  在IDE中管理数据库的一种方式是使用服务器管理器。在以前版本的VB中,我们可以使用数据浏览窗口,在新版VB中已经改成了服务器管理器。我们可以使用能够访问的每个服务器的许多管理功能,这取决于在每个服务器上的权限。如果有必要的权限,我们可以启动或中止服务、管理消息队列以及执行其它与服务器相关的功能。从数据库编程人员的角度看,服务器管理器使我们能够在每台机器上访问SQL Server,通过其中的工具,我们能够创建数据库、表、视图、存储过程、触发器和数据库模型,这些工具被完全集成到了IDE中,当打开一个表设计器时,它就显示在工作区内。存储过程窗口是与VB的代码窗口类似的彩色编程窗口。

  集成在Visual Studio中的SQL Server管理工具的目的是管理MSDE数据库和全功能的SQL Server数据库,除了将同时登录的用户数量限制为5外,MSDE数据库与SQL Server数据库完全相同,另外,它的性能也有所降低。

  安装MSDE

  在安装Visual Studio时,缺省情况下是不会安装MSDE的,Visual Studio安装程度只会在硬盘的一个目录中拷贝MSDE的安装文件,在使用MSDE前,我们必须首先要安装它。缺省情况下,MSDE安装文件存储在C:/Program Files/Microsoft Visual Studio .NET/Setup/MSDE文件平中,如果将Visual Studio 安装在了其它文件夹中,则必须在该文件夹中找到MSDE安装文件。

  双击名为Setup.exe的程序就启动了MSDE的安装文件。MSDE的安装有些特别,它与SQL Server 2000的安装程序不同。除非想把它安装在其它文件夹中,接受所有的缺省设置。如果正在使用MSDE,则需要确保安装的文件夹有充足的空间,因为我们不能将数据文件安装在其它的文件夹中,缺省情况下,数据文件将被安装在MSDE文件夹的子文件夹中。

[责任编辑:editor]

   

  注意:

  如果已经安装了SQL Server 7.0或2000,或者能够访问服务器,则我们也可以不安装MSDE,它们的功能相似,而且也不需要MSDE。当然了,如果喜欢只使用本地机或不希望占用服务器的资源,也可以选择安装MSDE。

  创建数据库

  使用"服务器管理器"创建数据库非常简单。将鼠标拖过"服务器管理器",扩展你要在上面建立数据库的服务器节点,扩展SQL Servers节点,右击该节点,从弹出的菜单中选择"新数据库"菜单选项,就会打开"创建数据库"对话框(图12),输入要建立的数据库的名字,除非要连接的数据库要求SQL Server安全机制,否则应当确保"使用Windows NT内置安全机制"选项被选中。输入一个使数据库能够在该服务器上创建的、有效的用户名称和口令。如果使用的是MSDE,则使用Windows内置安全机制。最后再点击"OK"按钮,这样就创建了一个新数据库。

  (图12)

  注意:

  我们不能通过"服务器管理器"删除数据库。

  在"新数据库名字"字段输入TestDB,并点击"OK"按钮,新的数据库就创建成功了。下面我们将在数据库中添加新表。

  表的创建和管理

  表是数据库的基本构成模块,而且保存着数据库存储的数据。表是由记录和字段组成的,与电子表格有点相似。一旦创建了数据库,下一步就该创建表了。

  要创建表,我们需要右击刚才创建的数据库下面的"Tables"节点,也许我们需要先扩展数据库节点。从环境菜单中选择"新表"菜单项,就会在主工作区中打开一个表设计器窗口,顶部是一个用于输入字段名和基本数据类型的表格,底部是字段的附加属性,这些属性会随着数据类型的变化而变化。如果使用过微软公司的Access创建过Access数据库表,就会对这一设计器比较熟悉。我们按图13的内容填写这一表格:

[责任编辑:editor]

   

  (图13)

  添加字段

  刚打开时,设计器是空的,我们必须在这个表中添加字段。顶部的表格使我们能够迅速地添加字段,字段的详细资料将显示在底部。我们可以在"数据库设计器"下的"工具/选项"对话框中改变字段的缺省设置。SQL Server和Oracle数据库的条目是不同的,如图14所示:

  (图14)

  字段名可以是任意的字符串,甚至能够包含空格。如果字段名字中有空格,在Transact-SQL语句中引用它时,必须用方括号括起来。

  小技巧:

  避免在字段名字中使用空格。并不是所有数据库系统都支持字段名字中使用空格,而且在引用时还必须记住需要添加方括号。如果希望创建能够在表格和报告上显示有意义标题的SQL命令,我们可以给它起一个包含有空格的别名,当然了,也必须使用方括号。

  在清楚表明所包含数据意义的情况下,使字段名尽可能地短,避免使用象AllowUserToLogInMultipleTimes这样的长字段名,而应当使用象MultiLogin这样短小精悍的字段名。否则,以后在代码中需要引用时,就会发现这纯粹是自找麻烦。也不要使用过于简单的字段名,否则,将给其它编程人员理解你的模型带来麻烦。如果可能,建立一个命名标准,并坚持使用它。

  SQL Server的数据类型

[责任编辑:editor]

   

  数据类型下拉列表列出了SQL Server中所有可能的数据类型,这里我们将列出基本数据,其它的数据类型对这些基本类型作了适当变化,而且也很少用到。

  ·NVarChar/VarChar━━可变长度字符串。VarChars型数据的长度可达255个字符,nVarChars类型数据的长度最大可达64KB。我们通常使用nVarChar,VarChar是为了保持后向兼容性。nVarChar的可贵之处就在于,它在存储数据时只使用必要的空间。

  ·Char/nChar━━这二种数据类型用于固定长度的文本字段,如果文本长度小于字段长度,则用NULL字符填充。

  ·Int/BigInt/SmallInt/TinyInt━━整数类型,只能存储整数。这类变量的大小不同,Int型变量的大小是4字节,BigInt是8字节,SmallInt是2字节,TinyInt是1字节。

  ·Bit━━Bit型变量的值只能是真/假。一个Bit型变量的值是0或1,Bit型字段不能用在索引中。如果需要对真/假值进行索引,使用Char(1)型变量,将其值定义为"0"或"1"。

  ·Decimal/Numeric━━带小数点的整数,这二种数据类型完全相同。

  ·Money━━带有4位小数的数字。

  ·Float/Real━━True fractions或实数,主要用在科学计算应用程序中。不要使用实数类型变量存储货币的多少或数量,而使用整型和numeric,因为很可能出现表面上相同的二个变量"不相等"的情况。

  ·DateTime━━这类变量存储日期/时间值,这类变量限制了可接受的日期范围。

  ·Text/nText━━指向大量文本型数据的指针,这类变量的大小只受磁盘空间的限制。

  ·Image/nImage/Binary━━指向大量二进制数据的指针,例如图像和声音。除了能够接受任意的二进制数据外,这一数据类型与Text类型相似。

  ·TimeStamp━━系统记录顺序时间数据的特别数据类型。

  ·UniqueIdentifier━━保存GUID(全球唯一标识符)的专用数据类型。

  "length"字段用在字符型和数字型字段中,它决定了数据的最大大小。"允许Nulls"字段决定该字段中是否允许使用NULL

  屏幕的下半部分包括每个字段基本数据类型之外的属性:

  ·描述━━我们可以输入字段的描述。建议读者使用这一属性,因为在对数据库模型进行归档时它非常有用。在创建字段时输入描述,否则,如果日后再想输入描述,就会发现这是非常困难的。

  ·缺省值━━任何字段的缺省值是Null。如果在定义字段时允许使用Null值,这自然不会引起什么问题。如果定义字段时不允许使用Null值,则最好定义一个缺省值,使我们能够在无需记住哪个字段不能使用Null值的情况下插入一个记录,我们也可以使用系统存储过程或函数作为缺省值。有一种情况我们必须定义缺省值:在向现有数据库表中添加字段,并使它不能成为NULL。由于SQL Server在存储时字段中不能存储NULL,我们必须定义一个缺省值,然后就会使用缺省值加载新添加的字段。

[责任编辑:editor]

   

  ·精度和刻度━━这二个数字只对数字型和小数型数据有效。精度是数字允许的最大位数,刻度是指小数点右边的位数,刻度为零意味着不允许使用小数点。

  ·标识、标识初值和增量━━这些属性只用于整数型数据。标识字段用于唯一地在数据库表中标识一个记录,从字面来看,它没有除此之外的其它任何意义。我们能够以如下方式定义标识字段:当在数据库表中插入新的记录时,将下次增加的值赋给它。标识属性能够向SQL Server表明,我们希望该字段成为标识字段。标识初始值是我们希望的标识字段的初始值,增量是每当插入一个新记录时我们希望向上一个标识值添加的数量。在每个数据库表中只能有一个标识符字段。

  ·IsRowGUID━━这一属性只对被定义为"唯一标识符"的字段有效。如果被设置为"真",则向SQL Server表明,该记录的是全球唯一的,全球任何其它数据库中都不存在该记录。当被设置为"真"时,调用NewID的函数被自动放置在"缺省值"属性中,该函数返回一个GUID。该属性主要用于数据库复制,但也可以将它与时间标志共同使用,完成数据库间的同步任务。

  ·公式━━该属性可以使我们将一个字段说明为计算的结果,该字段实际上是一个伪字段,它与电子表格中的公式字段相似。但它的计算只能是记录一级的,即它只能引用同一个数据库表中同一记录中的其它字段,不能使用合计计算。

  ·整理━━只适用于SQL Server 2000以及以上版本,我们现在可以进行字段级整理,整理是排序的另一种说法,该属性只适用于字符串字段。(待续)

[责任编辑:editor]