ADO.NET数据库编程
ADO.NET读书笔记系列之DataSet对象数据库教程-电脑资料

读书笔记系列之DataSet对象数据库教程-电脑资料ado|笔记|对象一、特点介绍1、处理脱机数据,在多层应用程序中很有用,。
2、可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法。
3、处理分级数据4、缓存更改5、XML的完整性:DataSet对象和XML文档几乎是可互换的。
二、使用介绍1、创建DataSet对象:DataSet ds = new DataSet("DataSetName");2、查看调用SqlDataAdapter.Fill创建的结构da.Fill(ds,"Orders");DataTable tbl = ds.Table[0];foreach(DataColumn col in tbl.Columns)Console.WriteLine(col.ColumnName);3、查看SqlDataAdapter返回的数据①、DataRow对象DataTable tbl = ds.Table[0];DataRow row = tbl.Row[0];Console.WriteLine(ros["OrderID"]);②、检查存储在DataRow中的数据DataTable tbl = row.Table;foreach(DataColumn col in tbl.Columns)Console.WriteLine(row[col]);③、检查DatTable中的DataRow对象foreach(DataRow row in tbl.Rows)DisplayRow(row);4、校验DataSet中的数据①、校验DataColumn的属性:ReadOnly,AllowDBNull,MaxLength,Unique②、DataTable对象的Constrains集合:UiqueConstraints,Primarykey,ForeignkeyConstraints通常不必刻意去创建ForeignkeyConstraints,因为当在DataSet 的两个DataTable对象之间创建关系时会创建一个。
ADO.NET数据访问技术

数据访问技术数据访问技术就是将C#和MSSQLl连接起来的纽带可以通过将内存中的临时数据写⼊到数据库中,也可以将数据库中的数据提取到内存中供程序调⽤。
是所有数据访问技术的基础。
使⽤⼀些ADO对象,如Connection和Command对象,也引⼊了⼀些新对象。
关键的新对象包括DataSet,DataReader,和DataAdapter。
Connections. ⽤于连接和管理针对数据库的事务。
Commands. ⽤于发出针对数据库的SQL指令。
DataReaders. ⽤于从SQL Server数据源读取只进流的数据记录。
DataSets. ⽤于针对结构型数据,XML数据和关系型数据的存储,远程处理和编程。
DataAdapters. ⽤于推送数据到DataSet,并针对数据库协调数据。
ConnectionsConnections⽤于和数据库“沟通”,并且被声明为特定的提供程序级别,例如SQLConnection。
Commands扫描连接然后结果集以流的形式被返回,这种流可以被DataReader对象读取,或者推⼊DataSet对象。
下⾯的例⼦演⽰了如何创建⼀个连接对象。
Connections可以通过调⽤Open⽅法被显式打开1 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");数据库连接字符串server=连接的数据库;database=连接数据库中国的那个表;user=⽤户名;pwd=密码CommandsCommands包含提交到数据库的信息,特定于提供程序的类⽐如SQLCommand。
⼀个命令可以是⼀个存储过程调⽤,⼀个UPDATE语句,或者⼀个返回结果的语句。
你也可以使⽤输⼊和输出参数,返回值作为命令的⼀部分。
下⾯的⽰例演⽰了如何对数据库执⾏⼀条insert(⽆返回值)语句和update(有返回值)语句。
ADONET数据库访问技术的应用实验报告

课程名称网站设计与WEB编程实验名称数据库访问技术的应用一、实验目的1.了解的结构,掌握控件的功能和应用方法。
2.灵活应用SQL语句对数据库或数据表进行操作。
3.掌握数据控件的功能和应用方法。
4.了解前台界面与后台数据库的关系,掌握通过前台对后台的操作方法。
二、实验设备PC机一台。
三、实验内容1.设计数据库表结构,编程实现数据的浏览、查询、录入、修改和删除功能。
四、实验要求1.设计一个数据库,数据库中至少有一个学生数据表,(包含的数据库字段有学号、姓名、专业、班级、性别),选取合适的字段设置为主键,并手工在数据库表中添加若干条记录。
2.用多种方法建立前台界面与数据库的连接。
3.在后台编写代码将数据显示在GridView控件中。
4.设计数据查询界面,能根据班级、专业等字段查询数据记录。
5.选用合适的控件设计学生信息录入界面,后台代码编程实现数据表中记录的增加、修改和删除功能。
6.思考如果以学号作为主键,录入学号时,如何验证学号的唯一性?7.思考为什么要将数据库连接字符串放在Web.config文件中?8.完成实验报告。
五、实验内容1.新建一个数据库stu,并设置主键2.新建空白网页,添加sqldatasource控件,并设置数据源为之前新建的数据库,用sql身份验证,再加入gridview控件,设置数据源为sqldatasource1,启用分页选择等属性3.网页运行结果4.设计查询窗口5.查询测试结果查询窗口和显示窗口的代码6.信息录入界面,使用detailsview控件与数据库关联运行网页后的结果单击新建后的新建界面更新,删除和插入功能亦可通过单击相关按钮实现。
思考题,为什么要把数据库连接字符串放在Web.config里?因为把字符串放进网站的config文件里,后边就可以直接以add name后的字符串引用,而不需要每次都写一遍,还可以对.config文件加密,起到保护数据库内容的作用。
ADO.NET数据库访问技术

数据库访问技术⼀. 的定义来源于COM组件库ADO(即ActiveX Data Objects),是微软公司新⼀代.NET数据库的访问模型,是⽬前数据库程序设计⼈员⽤来开发基于.NET的数据库应⽤程序的主要接⼝。
它利⽤.NET Data Provider(数据提供程序)进⾏数据库的连接和访问,通过数据库程序能够使⽤各种对象来访问符合条件的数据库内容,让提供数据库管理系统的各个⼚商可以根据此标准开放对应的.NET Data Provider,这样设计数据库应⽤程序⼈员不必了解各类数据库底层运作的细节,只要掌握所提供对象的模型,便可访问所有⽀持.NET Data Provider的数据库。
结构模型如下所⽰:图1. 结构模型是⼀个类库,这些类提供了很多的对象,可⽤于完成数据库连接和增删查改等操作。
其中包括如下五个对象: 1)Connection:⽤来连接数据库(SQL Server使⽤的是SqlConnection对象); 2)Command:⽤来对数据库执⾏SQL命令,如增删查改等操作; 3)DataReader:⽤来从数据库中返回只读数据,⽤数据源填充DataSet对象; 4)DataAdapter:与DataSet对象相结合使⽤,实现对数据库的控制; 5)DataSet:可看作离线时内存中的数据库;这五个对象提供了两种读取数据库的⽅式;第⼀种⽅式:使⽤Connection、Command、DataReader,其权限只能读取或查询数据库;第⼆种⽅式:使⽤Connection、Command、DataAdapter、DataSet,其权限能进⾏各种数据库的操作。
读取数据库操作⽰意图:图1. 结构模型⼆. 使⽤在线访问数据库的步骤(这⾥⽤的是SQL Server 数据库)1. 连接数据库直接上⼀段代码:using System.Data.SqlClient;string source = "server=(local); integrated security=SSPI; database=myDateabase;User ID=sa;pwd=sa";SqlConnection conn = new SqlConnection(source);conn.Open();// 对数据库数据进⾏操作conn.Close();(1). ⾸先添加命名空间System.Data.SqlClient;(2). 定义数据库连接字符串:第⼀种⽅法:直接把数据库连接字符串存放在字符串对象中,如上代码所⽰;第⼆种⽅法Web:将数据库连接信息存放在web.config配置⽂件中,然后通过使⽤ConfigurationStringSettings类进⾏调⽤。
ADONET数据库操作技术实验报告

实验报告题目:数据库操作技术院系:计算机科学与工程学院【实验题目】数据库操作技术【实验目的】1.掌握服务器验证控件的使用。
2.掌握对象的使用方法。
3.初步熟悉数据绑定控件GridView控件的使用方法。
【实验内容】使用DataReader对象设计一个用户登陆身份验证页面,页面打开时用户输入了正确的用户名和密码后,程序根据用户级别跳转到不同的页面。
建立Microsoft SQL Sever数据库manager.mdb的设计,并在其中创建存放用户信息的Admin表。
表中user字段表示用户名,pwd字段表示密码,level 字段表示用户级别,0表示管理员,1表示普通用户(游客)。
程序设计步骤:(1)设计Web页面Web页面的设计并不复杂,使用列表的形式,将Label和TextBox嵌入其中,如图4-1所示。
图 4-1 Web页面的设计(2)设置对象属性此处需要注意的是,密码部分需要做密文处理,并且不可进行复制粘贴。
(3)编写事件代码页面设计完成后,需要对登录按钮编写相应的时间。
其中包括与数据库的连接,获取输入的用户名和密码,之后与数据库进行匹配,并将匹配的结果返回给用户,同时程序根据用户级别跳转到不同的页面。
程序运行结果如图4-2所示。
图 4-2 程序运行结果【实验代码】Default:<%@Page Language="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default" %><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>无标题页</title></head><body><form id="form1"runat="server"><div><table border="1"><tr><td colspan="2"style="text-align: center"><strong><span style="font-size: 14pt">登 录</span></strong></td></tr><tr><td style="width: 100px; text-align: center">用户名</td><td style="width: 100px"><asp:TextBox ID="txtUsername"runat="server"Width="146px"></asp:TextBox></td></tr><tr><td style="width: 100px; text-align: center">密 码</td><td style="width: 100px"><asp:TextBox ID="txtPassword"runat="server"TextMode="Password" Width="145px"></asp:TextBox></td></tr><tr><td style="width: 100px"> </td><td style="width: 100px"><asp:Button ID="btnLogin"runat="server"OnClick="btnLogin_Click" Text="登录"/></td></tr></table></div></form></body></html>using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.OleDb;public partial class_Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){this.Title = "Reader对象应用示例";txtUsername.Focus();}protected void btnLogin_Click(object sender, EventArgs e){OleDbConnection conn = new OleDbConnection();conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;" + "Data Source=" + Server.MapPath("App_Data/manager.mdb");conn.Open();string strSQL = "select * from Admin";OleDbCommand com = new OleDbCommand(strSQL, conn);OleDbDataReader dr = com.ExecuteReader();string strUsername="", strPassword="",strLevel="";while (dr.Read()){if (txtUsername.Text == dr["user"].ToString() && txtPassword.Text ==dr["pwd"].ToString()){strUsername = dr["user"].ToString();strPassword=dr["pwd"].ToString();strLevel = dr["level"].ToString();break;}}dr.Close();conn.Close();if (strUsername == ""){Response.Write("<script language=javascript>alert('用户名或密码错!');</script>");return;}if (strLevel == "0"){Session["pass"] = "admin";Response.Redirect("manager.aspx");}else{Session["pass"] = "guest";Response.Redirect("guest.aspx");}}}Guest:<%@Page Language="C#"AutoEventWireup="true"CodeFile="guest.aspx.cs"Inherits="guest"%><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>无标题页</title></head><body><form id="form1"runat="server"></form></body></html>using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class guest : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){this.Title = "游客页面";string strPass = (string)Session["pass"];if (strPass != "guest"){Response.Redirect("default.aspx");}Response.Write("这是游客页面");}}Manager:<%@Page Language="C#"AutoEventWireup="true"CodeFile="manager.aspx.cs" Inherits="manager" %><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>无标题页</title></head><body><form id="form1"runat="server"></form></body></html>using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class manager : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){this.Title = "管理页面";string strPass = (string)Session["pass"];if (strPass != "admin"){Response.Write("<script language=javascript>alert('请先登录!');</script>"); Response.Redirect("default.aspx");}Response.Write("这是管理员页面");}}【实验结果】【实验心得】通过本次实验,我的的掌握更加深入,我基本掌握的服务器控件的应用,也基本掌握了GridView控件,熟悉了如何设置这个控件的基本属性,同时也加强了对其他控件的掌握。
第9章C#使用ADO进行数据库编程

9.2 窗体设计部分
任务9.1 任务实施
(四)“搜索电影”窗体模块 • (3) 添加控件
9.2 窗体设计部分
任务9.1 任务实施
(五)“评价电影”窗体模块 • (1) ―评价电影”模块概述
– “评价电影”窗体,能够根据用户在“导航”窗体“评电 影”一栏的文本框中输入的关键字,在数据库的“电影介 绍表”中搜索,找到与关键字匹配的电影,如果存在,就 把与该电影相关的所有评论显示在“评价电影”窗体的“ 网格视图”控件中。并允许用户插入、修改、删除相应的 评论记录。 – “评价电影”窗体也允许用户由“搜索电影”窗体或“推 荐电影”窗体跳转过来。 – 其界面布局如图9-17所示。
– “推荐电影”窗体,能够在“电影评论表”中找出当前登 录用户没有评价过的电影,然后根据其他人对电影评分的 平均值,按照由高分到低分的原则,向用户列出这些电影 的详细介绍信息。窗体结构和“搜索电影”几乎一样,而 代码实现逻辑完全不同,其窗体布局如图9-19所示。
9.2 窗体设计部分
任务9.1 任务实施
9.1.1 项目概述
―电影荐评系统”的流程图如图9-2所示。
9.1.2 数据库设计
要完成对电影和电影评价的保存,还要记录登录的用户信 息,这个简单的系统需要三张数据表来完成数据的保存。 系统的表结构如下:
1. filmintro(电影介绍表) • 表filmintro用于保存系统所有的电影信息
– 选择【文件】|【新建】|【项目】命令,打开“新建项目 ”对话框,在“模板”区域选择“Windows应用程序”, 在“名称”框里输入本项目的名称“FSS‖,在“位置”框 里设置项目保存的路径,单击“确定”完成项目创建。操 作如图9-8所示。
9.2 窗体设计部分
关于ADO.NET数据访问方式编程的研究

关于数据访问方式编程的研究华侨大学计算机学院吴昌钱[摘要]该文研究两个方面的内容:(1)研究A D O .N E T 模型,对各组成部分作分析。
(2)具体分析在不同数据访问情况下,如何选择A D O .N E T 中的组件来编程实现对数据访问操作。
其中,理解A D O .N ET 模型中各组件的实质尤为重要。
只有充分理解A D O .N ET 模型,才能确保在针对不同的数据访问情形下不会选错A D O .N ET 组件,或选择最适合的组件编写出高效率的代码。
[关键词]A D O .N ET 模型A D O .N ET 组件A D O .N ET 数据访问NET Framework 类库中包含的一整套数据访问技术,用于提供对关系数据和XML 的访问,这就是 。
是Microsoft 为大型分布式环境设计而引入,是基于原来ADO 提出的全新的、更灵活的新技术,适用于.NET 应用程序各种数据的存储。
它支持XML 编程模型,采用XML作为数据交换格式,因而可以非常顺利地通过防火墙,任何遵循此标准的程序都可以用它进行数据处理和通信,与操作系统平台无关,与语言也无关。
1A D O .N ET模型的组成分析图1A D O .N ET 模型的简要模型图1为 模型的简要模型,关于DataSet 对XML 文件的操作,图中并没有列出,这里重点体现的是 如何从后台服务器的数据库中获得数据,实现对数据的操作。
1.1A D O .N ET 对象模型的构成1.1.1物理层数据库。
保存在物理设备(如硬盘)中数据,主要是关系型数据库,这些数据由后台数据库服务器维护。
1.1.2数据提供程序。
它实现将物理数据到逻辑数据的转化。
1.1.3数据集。
即逻辑数据,是物理数据库在本地的一个副本,数据以XML 的形式存储位于内存中,由表、视图等对象构成。
1.1.4数据使用程序(应用程序界面)。
主要指Windows 应用程序的form 窗体界面或web 应用程序的网页界面,属于前台应用程序部分。
VBNET数据库编程基础教程

VBNET数据库编程基础教程众所周知,自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。
其中,又是.NET FrameWork SDK中重要的组成部分。
要了解的数据库编程,首先要明白的工作原理以及相关的对象、方法、属性。
本文将结合具体实例为你简单介绍数据库访问对象以及数据库编程基本方法。
一、数据库访问对象(一)简介是由微软Microsoft ActiveX Data Object(ADO)升级发展而来的。
是在.NET中创建分布式数据共享程序的开发接口。
的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQL Server 7.0(及更高的版本)和可以通过OLE DB进行访问的其他数据源。
为此ADO.NE T中包含了两个类库,System.Data.SQL库可以直接连接到SQL Server的数据,System.Data.ADO库可以用于其他通过OLE DB进行访问的数据源。
如Acces s数据。
(二)的名称空间是围绕System.Data基本名称空间设计,其他名称空间都是从Syste m.Data派生而来。
它们使得不仅访问DataBase中的数据,而且可以访问支持OLE DB的数据源。
当我们讨论时,实际讨论的是System.Data和System.Data.OleDb 名称空间。
这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。
这里我们讨论与后文实例有关的类。
即OleDbconnection、OleDbDataAdapter、D ataSet和DataView。
上面列举的类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。
在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库编程1、的相关概念。
Microsoft的新一代技术,是ADO组件的后继者。
主要目的是在.NET Framework平台存取数据。
提供一致的对象模型,可以存取和编辑各种数据源的数据,即对这些数据源,提供了一致的数据处理方式。
保存和传递数据是使用XML格式。
可实现与其他平台应用程序以XML文件进行数据交换。
2、数据访问类库的名称空间针对不同的数据源,使用不同名称空间的数据访问类库,即数据提供程序。
常用的数据源包括四种:Microsoft SQL Server数据源:使用System.Data.SqlClient名称空间。
OLEDB数据源:使用System.Data.OleDb名称空间。
ODBC数据源:使用System.Data.Odbc名称空间。
Oracle数据源:使用System.Data.OracleClient名称空间要使用 来访问数据库,需要将相应的名称空间导入到应用程序中,如下:System.Data是通用的名称空间,其中包含组成ADO.NET核心体系结构的所有类。
System.Data.Oledb 名称空间供 管理提供程序访问支持OleDb的数据源时使用。
System.Data.SQLClient 名称空间供 SQL Server管理提供程序使用。
该名称空间是专为 Microsoft SQL Server 而设计的,对于以前版本的 SQL Server,可以提高其性能。
如:using System.Data;using System.Data. SqlClient;System.Data.OleDb和System.Data.SqlClient名称空间的类名称相同,只是字头不同。
之所以分成两组类,主要目的是提供一组最佳化SQL Server数据库存取的类。
OleDb字头的类是使用OLEDB提供者数据源的数据库。
例如Access和Oracle等数据库。
Sql字头的类只能使用在SQL Server7.0以上版本,直接和服务器端的SQL Server通信,因为不通过OLE DB和ODBC,所以可以明显提升整体的执行效率。
3、的组成用于访问和处理数据的类库包含以下两个组件:.NET Framework 数据提供程序DataSet 数据提供程序的四个核心对象:Connection建立到指定资源的连接Command对一个数据源执行命令。
公开Parameters,在 Connection 的 Transaction 范围内执行。
DataReader从一个数据源读取的只读数据流。
DataAdapter填充一个 DataSet,解析数据源的更新。
是使用Connection对象建立与数据源的数据链路,然后使用Command对象执行命令来获取数据源的数据,对数据库来说就是使用SQL命令。
在获取数据源的数据后,就可以填入DataReader或DataSet对象,最后使用数据绑定在Web控件显示记录数据。
Connection对象可以建立与数据源间的连接;对数据库来说,还负责初始化数据库。
有两种:OleDbConnection对象和SqlConnection对象。
Web服务器和数据库系统本属于两套不同的应用程序,通过ODBC或OLE DB可以打开数据源的数据库,Connection对象进一步将程序和数据库连接起来。
Command对象可以对数据源执行命令,对数据库来说,就是执行SQL命令。
程序可以使用Command对象发送SQL命令来插入、删除、更新和查询数据表的记录。
需要先使用Connection对象建立数据库连接后,才能使用Command对象执行SQL命令。
两种:OleDbCommand对象和SqlCommand对象。
DataReader对象可以从数据源使用Command对象执行命令,获取“只读”(Read-Only)和“只能向前”(Forward-Only)的流数据。
每次只能从数据源读取一行数据保存到内存。
获取的数据为只读,不允许插入、删除和更新记录,其目的是显示查询结果。
两种:OleDbDataReader对象和SqlDataReader对象。
DataAdapter 和 DataSet 类满足了支持数据库访问的断开连接模型这一需求。
DataSet 是 断开连接体系结构中主要的数据存储工具。
填充 DataSet 时,必须创建一个 DataAdapter 来填充 DataSet。
DataAdapter 连接数据库,执行查询并填充 DataSet。
当 DataAdapter 调用 Fill 或Update 方法时,在后台完成所有的数据传输。
每个 .NET Framework 的数据提供程序都有一个 DataAdapter 对象。
DataAdapter 能控制与现有数据源的交互。
DataAdapter 也能将对 DataSet 的变更传输回数据源中。
一个 DataSet 代表一组完整的数据,包括表格、约束条件和表关系。
DataSet 能够存储代码创建的本地数据,也能存储来自多个数据源的数据,并断开到数据库的连接。
DataSet和DataTable对象DataSet对象是由DataTable对象组成的集合对象,可代表保存在内存的数据库。
每一个DataTable保存一个数据表的记录数据,并且可以设定数据表间的关联性。
属于System.Data名称空间,用DataAdapter类的方法Fill()将数据表的数据填入DataSet对象。
可以在DataTable对象中插入和删除行,即处理数据表的记录,最后使用DataAdapter 类将DAtaTable对象中的数据更新到数据库。
4、使用 SQL命令执行数据库操作分为两种方式:使用的Command对象配合SQL语法;使用的DataSet对象;(1)可用Command对象执行SQL命令;用Connection对象来建立数据库连接。
步骤:导入所需的名称空间;建立和打开数据库连接;建立Command对象;执行SQL命令处理数据库;关闭数据库连接;实例演示。
建立Connection对象的语法:SqlConnection objcon;objcon=new SqlConnection(strDbCon);上述代码建立了名为objCon的SqlConnection对象。
strDbCon变量是数据源字符串,如:strDbCon="server=(local);database=ybsd;Trusted_Connection=Yes;"上述字符串中以“;”分隔建立好Connection对象后,就可以使用Open()方法打开数据库连接:objCon.Open()Connection对象的相关方法:Open()和Close()Connection对象的相关属性:ConnectionString;ConnectionTimeoutDatabase;DataSource;Provider;State上述属性在连接打开后都成为只读属性;在连接打开前,可以设定这些属性,如:objCon.ConnectionTimeout=30上述设定与在连接字符串中指定功能等同;在打开数据库连接后,就可以建立Command对象来指定欲执行的SQL命令字符串:SqlCommand objcom;objcom = new SqlCommand(strsql, objCon);上述代码使用SqlCommand类建立Command对象;第一个参数是SQL命令字符串;第二个参数是建立的Connection对象:实例演示:使用sql语句SELECT CategoryID, CategoryName FROM Categories,创建查询表Categories的命令的代码如下:SqlCommand cmd;cmd=new SqlCommand("SELECT CategoryID, CategoryName FROM dbo.Categories",con) Command对象的相关属性:Parameters:用来访问输入及输出参数和返回值。
SqlCommand支持命名参数。
添加到Parameters集合的参数的名称必须与SQL语句或存储过程中的参数标记的名称相匹配。
OleCommand不支持命名参数,用问号占位符标记参数,则向Parameters集合中添加参数的顺序必须与定义的参数顺序相匹配。
如:SqlParameter param;……objcmd = new SqlCommand("select username,password from userinfo where username like @name ", objconn);param = objcmd.Parameters.Add("name", SqlDbType.NVarChar, 15);param.Value = tbname.Text;SqlDataReader objdr = objcmd.ExecuteReader();……Command对象的相关属性:CommandType:命令类型,可选CommandType.StoredProcedure、CommandType.Text、CommandType.TableDirect如:Sale是存储过程cmd =new SqlCommand(“sale”,con)mandType=CommandType.StoredProcedure在打开数据库连接,建立Command对象后,就可以用Command对象的ExecuteNonQuery()方法来执行SQL命令,如:count=objCmd.ExecuteNonQuery()Count可以获取响应的记录数。
此方法不会回发记录数据。
Command对象公开了几个可用于执行所需操作的Execute方法:ExecuteReader:当以数据流的形式返回结果时,使用ExecuteReader可返回DataReader 对象。
ExecuteScalar:使用ExecuteScalar可返回单个值。
ExecuteNonQuery:使用ExecuteNonQuery可执行不返回行的命令。
使用DataReader对象的Read方法可从查询结果中获取行。
例如,循环显示SqlDataReader—dtr的数据的代码如下:While(dtr.Read()){lblMessage+="<li>";lblMessage+=dtr["ID"];lblMessage+=", ";lblMessage+=dtr["姓名"];}完成数据库操作后,使用Connection对象的Close()方法关闭数据库连接:objCon.Close();实例演示。