asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET2.0数据库入门之SQL Server


发布日期:2021年12月05日
 
ASP.NET2.0数据库入门之SQL Server

因为Access并不真正为高性能应用程序服务所以一个希望有多个同时连接用户的站点必须部署一个比Access更适合的数据源本文将讲述如何从Microsoft SQL Server(一种企业级RDMS)中获取数据

SQL Server完全版包括了三个部分第一个是引擎用于实际组织数据以及针对命令响应进行读取和写入操作第二个是开发人员的工具软件包用于对数据库进行操作例如Query Analyzer和Data Transformation Services最后一个是用于管理数据的工具包括备份程序和复制模式

虽然完全版对大型企业来说有着不可估量的好处但是很多开发人员并不需要整套工具幸运的是Microsoft提供了一个SQL Server引擎的免费版叫做SQL Server Express(SSE)尽管它具有一个使用TSQL命令来导入模式和数据的命令行工具(osqlexe)但是它还不包含在SQL Server完全版中具有的丰富图形化的工具不过可以方便地使用Visual Studio或者Visual Web Developer来使用SSE开发数据库SSE有一个限制即只处理本地的连接(不可能在Web服务器之外的不同机器上运行SSE)对于具有某些嗜好的人以及学生的Web站点来说SSE是一个非常适合的选择可能会使用基于SQL Server 的MSDE而SSE则基于SQL Server的Yukon版

除非有另外特别的说明这里所介绍的所有技术均可应用于SQL Server的三种形式(完全版产品SSE和MSDE)因此通用术语SQL Server包含了这三种形式

因为SSE只是一个引擎而并没有内置的开发工具(到年)所以必须使用其他的工具来创建修改或者填充数据库为此我们将要使用的主要工具是Visual Studio或者Visual Web Developer其中提供了Database Explorer作为其界面的一部分请注意Database Exporer可以更改本地数据库中的数据和模式但是它只能更改远程数据库中的数据(而不是结构)在Visual Studio中Database Explorer被称为Server Explorer因为它包括了一些处理非数据库服务器的附加功能我们还将在本书的开端简单地使用osqlexe命令行工具来导入将在本书通篇使用的初始数据库修改数据库结构的第三种方式是打开Access然后在SSE数据库中链接一个外部表

使用SQL Server需要熟悉一些词汇SQL Server安装在一台称为服务器(server)的机器上并且可以通过其机器名来引用如果SQL Server与请求软件位于同一台机器上那么这台机器可以用(local)来引用引擎可以在一台机器上安装多次每一次安装称为一个实例(instance)SSE安装一个名为(local)\SQLExpress的实例在一个实例内可以创建数据库(database)数据库有一些具有字段(field)和记录(record)的表(table)数据库还有供数据使用者使用的一组表字段和约束称为视图(view)存储过程(stored proceduresSPROC)可以对数据执行任务一个SQL Server实例自动安装了一个用户名为sa的账户当对用户使用SQL Server认证时这个账户具有对所有对象进行所有动作的权限在使用Windows认证(也称为混合认证)的时候登录进Windows的用户也同时登录进了SSE

使用SQL Server数据库之前的准备

花时间在研究数据库上将减少您设计使用数据的页面时的错误在编写使用SQL Server的页面之前请检查您是否已掌握了如下几类信息

· 服务器实例和数据库名称—— 确认服务器名称实例和数据库名称的确切拼写如果在服务器上只有一个完全版SQL Server的实例那就不需要使用实例名了但是即使在服务器上只有一个SSE的实例也必须用MyServer\SQLExpress来显式地引用请明确是将要测试实际数据还是测试数据库的部署备份

· 安全信息—— 您需要知道您的用户ID和密码以便对开发数据库的访问进行认证同样地请检查SSE是使用Windows认证还是SQL认证(第章中的安装曾说明SSE应该使用Windows认证)

· 数据库模式—— 理解数据库的模式获得表和字段名自动生成或锁定的字段相关性以及约束的确切拼写仔细注意对象名称中的下划线和空格从数据库管理员那里查到是直接使用表还是使用视图或者存储过程(SPROC)使用后者将可能需要特殊数据类型的参数用来检查这些元数据的SQL语法罗列在本章的后面

· 测试SQL语句(可选)—— 您可能会怀疑SQL语句的语法或者逻辑您将会发现测试语句的有效方法是使用诸如SQL的Query Analyzer的开发工具而不是在这些语句第一次出现在ASPX页面上时才测试

连接字符串

AccessDataSource控件和SqlDataSource控件之间语法的主要区别在于使用数据库的方式各异对MDB来说我们只需提供文件名和路径名而SqlDataSource则使用包含了服务器名称数据库名称和登录信息的连接字符串名连接字符串的语法区别于我们在Visual Basic或者C#中所熟悉的语法并且也是很多学生犯错误的原因一个典型的连接字符串如下

ConnectionString=Server=MyServer; Database=MyDatabase;User ID=MyID; Password=MyPass

多行的连接字符串的格式能够提高可读性如下所示

ConnectionString=

Server=MyServer;

Database=MyDatabase;

User ID = MyID;

Password=MyPass

首先我们来讨论语法源代码中整个字符串处于双引号之中当在VWD的属性窗口指定连接字符串时您不需要引号VWD将会自动添加在引号中间是一些格式如Criteria=value的成对信息分号将这些信息分隔开请注意值不需要使用引号同样请注意即使判句中包含空格(例如User ID)它们也不需要使用引号或者方括号这种语法理解起来并不困难但是因为与VBC#和SQL语言不同所以错误常常出现现在让我们花一点时间将这个字符串分解开来

在这个连接字符串中有两种值数据库标识符(服务器实例和数据库)和安全值(用户ID密码和安装设置)数据库标识符以服务器值开始这个值是运行SQL Server的机器的网络名称(在XP中机器名称的获得可以通过Start>My Computer单击右键并选择Properties>Computer Name tab>Full Computer Name在Windows 可以在桌面的My Computer上单击右键>Properties>Network Indentification)如果知道数据库服务器与ASPNET运行的Web 服务器使用相同的机器那么还可以将服务器名称指定为(local)来表明服务器就是ASPNET页面运行的本地机器可以用Instance=MyInstance来添加实例更一般的情况是使用MyServer \My Instance或者(local)\MyInstance来添加实例至服务器名称可能还会看到使用句点(句号)来表示本地机器例如\SQLExpress

在默认情况下SSE安装自己的实例单独引用(local)将导致失败必须使用(local)\SQLExpress来引用SSE

安全设置将在本章稍后讨论现在我们来了解Windows Authentication使用属性IntegratedTrusted_connection=true而不是用户ID和密码属性SQL认证需要两个值user=MyUserName;password=MyPassword其中MyUserName和MyPassword将被您的证书代替本文使用的是Windows认证

如果您熟悉ASP早期版本那么也许对提供程序感到疑惑SqlDataSource的默认提供程序是NET Framework Data Provider for SQL Server所以在本章中不需要指定提供程序下一章将会讨论为其他数据库指定非默认的提供程序

上一篇:asp.net身份验证(登录控件),基于标准的sqlserver

下一篇:ASP.NET计算廿四节气