ASP.NET数据库编程入门

因为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/webnet/archive/2009/03/21/1418694.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球智能制造发展现状及前景预测 工业机器人引领行业发展

来源:前瞻产业研究院全球智能制造发展历程智能制造是伴随信息技术的不断普及而逐步发展起来的。1988年,美国纽约大学的怀特教授(P.K.Wright)和卡内基梅隆大学的布恩教授(D.A&#xf…

vb整合多个excel表格到一张_VB合并工作表下载

VB合并工作表最新版是一款功能强大且界面简洁美观的excel表格合并工具,VB合并工作表最新版操作简便且易上手可以运行稳定,能够为大家解决合成打开卡顿等问题,实现多薄多表合并,VB合并工作表官方版还可以有效轻松提升工作效率。软件…

sql server 模糊查询

模糊查询——like select * from 表名where id like %2%select * from 表名where id like d%% escape d 查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容 模糊查询--is null select * from 表名 where na…

java.security.InvalidKeyException: Illegal key size

来源:https://blog.csdn.net/dling8/article/details/84061948 今天在使用idea打包maven项目时,出现这个错误:java.security.InvalidKeyException: Illegal key size。(测试也可能会出现这个问题)貌似是因为加密出现了…

NAT 详解

NAT技术(一、二、三、四、五) 系列:https://blog.51cto.com/wwwcisco/category1.html CCNA学习笔记之NAT:http://sweetpotato.blog.51cto.com/533893/1392884 网络地址转换NAT原理及应用:http://blog.csdn.net/xiaofei0859/article/details/…

趋势|人工智能疯狂洗脑,最聪明的钱已转向这16项技术

来源:21世纪商业评论 摘要:Gartner今年发布的技术成熟曲线中,出现了16个处于上升阶段的新兴技术,这些正在崛起的技术,或将成为企业未来几年战略性技术趋势的热点。不久前,信息技术研究公司Gartner发布了201…

action在java_@Action(value=/login在java语句中是什么意思

展开全部struts中采用注解配置Action需要导入struts2-convention-plugin的jar包Action省略getters和setters32313133353236313431303231363533e4b893e5b19e31333337386633ParentPackage("xystruts-default")Namespace("/login")public class LoginAction e…

JS省市二级联动

<SCRIPT LANGUAGE"JavaScript"> <!-- ###中国省市二级联动菜单开始## function Dsy() { this.Items {}; } Dsy.prototype.add function(id,iArray) { this.Items[id] iArray; } Dsy.prototype.Exists function(id) { if(typeof(this.Items[i…

OSI七层协议模型和TCP/IP四层模型

TCP/IP 协议栈及 OSI 参考模型详解&#xff1a;https://blog.csdn.net/guobing19871024/article/details/79415846 OSI七层网络模型&#xff0c;TCP/IP四层网络模型与网络协议解析&#xff1a;http://www.360doc.com/content/13/1123/17/7267612_331579105.shtml [网络必学]TCP…

基于java处理ofd格式文件

一、ofd格式介绍 国家发布过一份关于ofd编码格式的资料&#xff0c;本来我想传上去的发现资源重复了&#xff0c;你们可以找找看&#xff0c;没有的话留个邮箱&#xff0c;我看到会发给你们的 ofd本质上其实是一个压缩文件&#xff0c;咱们把他当做一个压缩包来处理就好了&…

一文带你读懂深度学习:AI 认识世界的方式如同小孩

来源&#xff1a;36氪摘要&#xff1a;搞清楚儿童的大脑究竟是如何运转的&#xff0c;然后设计出一个电子版本能够同样有效地运转&#xff0c;可能需要计算机科学家们几十年的努力。如果你经常花时间和小孩子待在一起的话&#xff0c;你会不由得思考小孩子怎么能够学习得如此之…

java方法的参数传递规则_java语言参数传递介绍

java语言参数传递介绍Java不只是一种编程语言&#xff0c;它是一个完整的平台&#xff0c;拥有庞大的库&#xff0c;将诸如图形绘制、Socket连接、数据库存取等复杂操作进行了最大程度的简化。下面是小编分享的java语言参数传递介绍&#xff0c;一起来看一下吧。1.按值传递(by …

C#使用oracle数据库的function与procedure

ORACLE段&#xff1a;首先在ORACLE建立PACKAGE和PACKAGE BODY&#xff0c;将在这里面定义函数和存储过程返回结果集。1&#xff1a;建立PACKAGE&#xff1a;CREATE OR REPLACE package SCOTT.pk_wtistype mytype is ref cursor;procedure p_wt(mycs out mytype);function f_get…

微信支付PKIX path building failed

异常信息 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification p ath to requested targetat sun.security.ssl…

Nvidia黄仁勋发布了全球最大GPU

来源&#xff1a;凤凰科技花子健摘要&#xff1a;有竞争在&#xff0c;更大的惊喜才有可能会到来。北京时间3月28日凌晨00:00&#xff0c;英伟达GTC 2018&#xff08;GPU Technology Conference 2018&#xff0c;以下简称GTC&#xff09;在美国圣何塞举行。英伟达再一次在提升计…

计算机网络(4):网络层

网络层提供的两种服务 虚电路服务&#xff08;Virtual Circuit Service&#xff09;和数据报服务&#xff08;Datagram Service&#xff09;是在网络层&#xff08;第三层&#xff09;提供的两种不同的通信服务。它们主要区别在于建立连接的方式和数据传输的方式。 虚电路服务…

VS通用快捷键:

通用快捷键&#xff1a; 1、自动排版(类似VC6中的AltF8&#xff09; 编辑.格式化选定内容 Ctrl K&#xff0c;Ctrl F 根据周围的代码行&#xff0c;正确缩进选定的代码行。 2、注释与去掉注释功能。 编辑.注释选定内容 Ctrl K&#xff0c;Ctrl C 使用编程语言的正确注释语法…

指针数组下标JAVA_C语言中下标与指针的转换以及指向指针的指针的例子

下标到指针之间和转换以下的程序做了什么。#include int main(){int a[3][3] {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};int i 0;int j 0;for(i 0; i<3; i){for(j0; j<3; j){printf("%d\n", *(*(ai)j));}}}打印了数组中的每个元素&#xff1a;指向指针的指针#inc…

windows 下 Graphviz 安装及入门教程以及 PlantUML

From&#xff1a;http://m.blog.csdn.net/lanchunhui/article/details/49472949 开源工具---使用简单的文字描述画UML图之PlantUML官网&#xff1a;http://plantuml.com PlantUML 支持的工具&#xff1a;http://plantuml.com/running PlantUML语言参考手册中文版.pdf&#xff…

GTC2018八大热点:发布多项黑科技,联合芯片巨头ARM打造AI芯片专用IP

来源&#xff1a;人工智能和大数据丨公众号一年一度的GTC至今已经迎来了第十个年头&#xff0c;虽然它每年或多或少的给网友一些“失望”&#xff0c;但它也终究是代表着GPU行业的高水平技术大会。那么&#xff0c;今年的GTC大会&#xff0c;英伟达又给业界带来了哪些惊喜呢&am…