热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET2.0数据库入门之SQLServer

ASP.NET2.0数据库入门之SQLServer

因为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。所以在本章中不需要指定提供程序。下一章将会讨论为其他数据库指定非默认的提供程序。

 


推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文是关于C#类型系统、值类型和引用类型的概念性笔记。介绍了C#1系统类型的三个特性,静态类型的含义,显式类型和隐式类型的区别。还讨论了类、结构、数组类型、枚举、委托类型和接口类型属于哪一种类型。同时纠正了关于结构、引用类型和对象传递的错误表述。最后提到了C#4中使用动态类型的关键字。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
  • 在C#中,使用关键字abstract来定义抽象类和抽象方法。抽象类是一种不能被实例化的类,它只提供部分实现,但可以被其他类继承并创建实例。抽象类可以用于类、方法、属性、索引器和事件。在一个类声明中使用abstract表示该类倾向于作为其他类的基类成员被标识为抽象,或者被包含在一个抽象类中,必须由其派生类实现。本文介绍了C#中抽象类和抽象方法的基础知识,并提供了一个示例代码。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
author-avatar
格林威治
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有