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

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

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

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

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

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

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

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

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

· 安全信息—— 您需要知道您的用户ID和密码,以便对开发数据库的访问进行认证。同样地,请检查SSE是使用Windows认证还是SQL认证(第1章中的安装曾说明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),它们也不需要使用引号或者方括号。这种语法理解起来并不困难,但是因为与VB、C#和SQL语言不同,所以错误常常出现。现在让我们花一点时间将这个字符串分解开来。

在这个连接字符串中有两种值:数据库标识符(服务器、实例和数据库)和安全值(用户ID、密码和安装设置)。数据库标识符以服务器值开始,这个值是运行SQL Server的机器的网络名称。(在XP中机器名称的获得可以通过Start->My Computer;单击右键并选择Properties->Computer Name tab->Full Computer Name。在Windows 2000中,可以在桌面的My Computer上单击右键->Properties->Network Indentification)。如果知道数据库服务器与ASP.NET运行的Web 服务器使用相同的机器,那么还可以将服务器名称指定为(local)来表明服务器就是ASP.NET页面运行的本地机器。可以用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。所以在本章中不需要指定提供程序。下一章将会讨论为其他数据库指定非默认的提供程序。

转载于:https://www.cnblogs.com/guolulang/archive/2007/06/09/777876.html

ASP.NET2.0数据库入门之SQL Server相关推荐

  1. 数据库入门教程(SQL Server 2005)----数据库是如何查询数据的

    数据库入门教程(SQL Server 2005)----数据库是如何查询数据的----查询:逻辑顺序 1.计算列 //以scott数据库中的emp表为例-----where可译为查找,其本质是在进行表 ...

  2. 数据库入门教程(SQL Server 2005)----数据库是如何存储数据的

    作者: 大蜀黍946 数据库是如何存储数据的---外键:来自 主键:唯一的标识或者说区分开一个事物. 外键:能够标识事物之间的联系.数据来自外部 1.表的相关数据 字段:用来模拟事物的某一个静态特征. ...

  3. ASP.NET2.0快速入门--高级数据方案(3)

      上篇系列文章:http://mqingqing123.cnblogs.com/archive/2006/03/23/356592.html (本节继续介绍一些更容易忽略的问题,供大家参考,由于内容 ...

  4. VS2008+SQL2005 ASP.NET2.0数据库连接总结 (vs2005也可)----转载+说明

    一:关于MS SQL 2005和C#远程连接的详细设置 ◎ 首先嘛MSSQL2005总要先装好了的!,然后先我们要配置MSSQL服务器开启远程连接功能,可以到配置工具-=>SQL Server ...

  5. VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)

    站点: 如果新建默认的Web安装项目,那它将创建的默认网站下的一个虚拟应用程序目录而不是一个新的站点.故我们只有创建新的安装项目,而不是Web安装项目.然后通过安装类进行自定义操作,创建新站如下图: ...

  6. ASP.NET2.0+SQL Server2005构建多层应用 [转]

    随着.net 2.0的发布,将会使得使用ASP.NET 2.0来构建的Web应用越来越容易.使用ASP.NET 2.0和SQL Server 2005,将会比ASP.NET 1.1更方便地构建多层体系 ...

  7. mssql 数据库审计账户_SQLServer数据库审计功能入门之SQL Server审核 (SQL Server Audit)...

    本文主要向大家介绍了SQLServer数据库审计功能入门之SQL Server审核,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 介绍 Audit是SQL Server ...

  8. asp.net2.0如何加密数据库联接字符串

    asp.net2.0如何加密数据库联接字符串 在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下: 1.添加密钥 执行:C:/WINDOW ...

  9. asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.1 ...

最新文章

  1. 4.1.2(3) 数据交换方式
  2. symbol MC 3090 upgrade to symbol MC 3190
  3. windows下 mysql 转移data目录
  4. 输出倒逼输入 加速自己成长
  5. mysql账号相关的操作和安全管理
  6. 超人气光棍节!现在时间虽然不是2011年11月11日11点11分11秒11毫秒11微秒11纳秒11皮秒11飞秒11阿秒11渺秒11......
  7. html里怎么引用php代码,如何实现在html引用php代码,不是简单的?php ?
  8. mysql和oracle的字符串拼接_Oracle和Mysql中的字符串的拼接
  9. go技巧-json转map
  10. 高中计算机会考知识点选择题,高中信息技术会考选择题知识点
  11. 软件程序开发步骤有哪些?如何简单制作手机App?
  12. Chapter 5 分类算法——决策树与随机森林
  13. 【云原生】docker+k8微服务容器化实战
  14. 【Proteus仿真】Arduino UNO + PCF8563 +LCD1602时间显示
  15. slice,splice,substring,split
  16. [转贴]变态的C自增
  17. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.1 Kinect for Xbox 360的产品设计...
  18. 小学校本培简讯 计算机技术,青石小学校本培训数学学科组简报
  19. rsync+inotfy实时同步
  20. 银行如何借助数据分析提升业务运营效率

热门文章

  1. 6.6 rsync:文件同步工具
  2. python识别人脸多种属性_人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门...
  3. 结构体排序二~1339: 考试排名(带技巧的输入)
  4. 5天让你技能加满的“王炸组合”,速来!
  5. 阿里凑单算法首次公开!打包购商品挖掘系统解析
  6. Java编程入门100例之二十二(字符串查找)
  7. STM32F0308DISCOVERY探索套件
  8. JUST技术:探查城市中的异常事件
  9. 观点:再见Objective C?程序员眼中的Swift
  10. GameMaker Studio 之中的攻击与受击判定盒