第11章使用ADO.NET数据库

合集下载

实验11:使用ADO·Net编程实现数据库应用程序

实验11:使用ADO·Net编程实现数据库应用程序

第十一周实验使用编程实现数据库应用程序(2)——“连接式”数据库访问一.实验目的1.了解主要对象的使用方法。

2.掌握的“连接式”数据库访问模式和程序流程。

3.掌握使用的类和对象以编程方式在动态生成Web窗体时实现数据库访问。

二.实验环境●Microsoft Visual Studio 2010●BookStore数据库三.实验内容说明:标记为▲的是必做题目,其他为选作题目。

4.完成图书订购信息的统计。

具体要求是:给定书号查询该图书的名称、该图书的销量总量以及购买了该图书的订单数。

页面设计及运行效果如图2.43所示。

(a)页面设计(b)页面运行效果图2.43页面运行效果提示:本题练习使用SqlCommand实现“连接式”数据访问。

在本题中,请使用ExecuteReader()执行SQL语句获取数据集“书号”填充DropDownList1;采用ExecuteReader()执行存储过程获得包括书名和销售总量的单行数据;采用ExecScalar()执行存储过程获得单一数值订单数。

5▲.采用SqlCommand的ExecuteNonQuery()实现第3题的数据维护功能,并通过窗体底部标签显示操作状态的提示信息。

页面设计及运行效果如图2.44所示。

(a)页面设计(b)页面运行选择记录效果(c)页面运行修改记录效果图2.44页面运行效果提示:本题练习使用SqlCommand的ExecuteNonQuery()方法实现添加、修改、删除等数据更新操作,并且利用客户端返回受影响的记录行数进行操作是否成功的提示。

6▲.利用SqlCommand的ExecuteNonQuery()实现客户评价类别信息的统计。

要求给定客户等级查询该等级人数,占总人数的比例(如图2.45)。

(a)页面设计(b)页面运行效果图2.45页面运行效果提示:本题练习使用SqlCommand的ExecuteNonQuery()方法通过存储过程的OUTPUT参数返回结果实现数据统计功能。

实验10:使用ADO·Net编程实现数据库应用程序

实验10:使用ADO·Net编程实现数据库应用程序

1第十周实验使用 编程实现数据库应用程序(1)——“断开式”数据库访问一.实验目的1.了解 主要对象的使用方法。

2.掌握 的“断开式”数据库访问模式和程序流程。

3.掌握使用 的类和对象以编程方式在动态生成Web 窗体时实现数据库访问。

二.实验环境● Microsoft Visual Studio 2010● BookStore 数据库三.实验内容说明: 标记为▲的是必做题目,其他为选作题目。

1▲.使用 对象编写程序,实现访问BookStore 数据库的Web 应用程序,使用GridView 显示Customer 表的信息。

页面运行效果如图2.40所示。

图2.40页面运行效果提示:① 本题练习利用“断开式”数据访问模式查询数据库,将数据集提取到客户端的DataSet ,然后利用界面控件GridView 显示。

本题使用到的 对象包括:SqlConnection 、SqlCommand 、SqlDataAdapter 、DataSet 。

② 新建Web.Config 文件,添加连接字符串“BookStoreConnectionString"。

<connectionStrings><add name="BookStoreConnectionString" connectionString="Data Source=.;Initial Catalog=BookStore; Integrated Security=SSPI" providerName="System.Data.SqlClient"/></connectionStrings>③ 注意要在.cs 文件中添加对SqlClient 命名空间的引用:using System.Data.SqlClient;2▲.创建一个Web 应用程序,程序启动时自动在DropDownList 显示图书类别列表;选择类别后点击“查看销量”按钮在GridView 中显示该类别图书中各本书的销售量;点击“平2 均销量”按钮计算该类图书的平均销量;点击“总销量”按钮调用存储过程查询该类图书的总销量。

使用ADO.NET访问数据库.

使用ADO.NET访问数据库.
• 提供对OLEDB数据源访问。常用的OLE DB提供程
序包括:
– SQLOLEDB:用于SQL Server的Microsoft OLE DB提供 程序。
– MSDAORA:用于Oracle的Microsoft OLE DB提供程序。 – Microsoft.Jet.OLEDB.4.0:用于Microsoft Jet的OLE DB
使用数据提供程序访问数据库的 步骤
• 使用数据提供程序访问数据库操作的典型
步骤如下:
– (1)建立数据库连接; – (2)创建SQL命令; – (3)执行SQL命令; – (4)处理SQL命令结果。
建立数据库连接
• 在中,通过创建Connection对象连接到特定的数据库。
每个.NET Framework 数据提供程序包含一个Connection对象: – SQL Server .NET Framework数据提供程序:SqlConnection。 – OLE DB .NET Framework数据提供程序包:OleDbConnection。 – Framework数据提供程序:OdbcConnection。 – Oracle .NET Framework数据提供程序:OracleConnection。
.NET Framework数据提供程序
• .NET Framework数据提供程序针对不同的
数据源,数据访问类库的功能具 有类似的一致性。一般包括下列类:
– Connection:建立与特定数据源的连接。 – Command:对数据源执行各种SQL命令。 – DataReader:从数据源中抽取数据(只读)。 – DataAdapter:用数据源填充DataSet。
提供程序。
• 位于System.Data.OleDb命名空间。其中主要包括

使用ADO连接数据库

使用ADO连接数据库
• Provider特性:它指定用于连到数据的OLE
DB Provider的名称(Sql Provider不需要)
• Data Source 特性:它指定数据库的位置,既可 以是 Access 数据库的路径,也可以是 SQL Server或Oracle数据库所在计算机的名称。
• User ID和Password特性:它们指定用户名和该 数据库的有效帐户密码。
cn.Open (); 以上数据库是SQL SEVER身份验证登录的。
• 4.打开和关闭连接
• 如前所述,Open 方法和Close方法不带参 数:cn.open();cn.close();
5、State属性和StateChange事件
(1) State属性:指示数据库连接的当前状态。它可以是 下列ConnectionState枚举值中一个或者多个值的组合: Closed、Connecting、Open、Executing、Fetching和 Broken。通常情况下,需检查 State 属性以确保打开一个 关闭着的连接或者关闭一个已打开的连接,如下列代码所 示:
Command对象、DataReader对象和DataAdapter对象的模 型
表一 两种数据提供组件中的对象
数据提供组件 Connection Command DataAdapter DataReader
SQL Server SqlConnection SqlCommand SqlDataAdapter SqlDataReader
OLE DB OleDbConnection OleDbCommand OleDbDataAdapter OleDbDataReader
表二 System.Data的几个常见的子类
类 名称 DataSet DataTable DataView DataRow DataTableCollection DataRowCollection DataColumn DataException

使用ADO_NET访问SQLServer2000数据库

使用ADO_NET访问SQLServer2000数据库
145
2 0 1 0年第10期
信息纵横
使用ADO.NET访问SQL Server 2000数据库
钱程
(武汉科技大学中南分校信息工程学院)
摘 要 ADO.NET是ADO的全新版本,它支持脱机访问和联机访问两种方式访问数据库,脱机访问释放了宝贵的数据库资源,系 统负荷小,性能高。本文分析了利用ADO.NET访问SQL SERVER2000数据库的两种方法,给出了实现过程及操作步骤,举例说明了 操作方法。
Catalog=school;Integrated Security=SSPI”
Dim myCn As New SqlConnection
Dim mySQL As String=”select * from xs”
'创建Command对象
Dim myCommand As New SqlCommand(mySQL,myCn)
str=str+myTable.Rows(num).(“age”).ToString+vbCrLf
Next
Str=str+”Ok,添加成功!!”
MessageBox.Show(str);
Catch myInformation As SqlException
MessageBox.Show(myInformation.Message)
2 ADO.NET联机模式的数据存取
在联机模式下,应用程序会始终连接到数据库中。联机模式下 的数据库存取操作,从开始到结 束,客户端与服务器端都是保持 在联机的状态,一般而言,对于 大型慢速的广域环境不合适,较 适用于数据量小、系统的规模不 大且所有存取的客户端与数据库 服务器都位于同一区域的网络上 使用。
3 强化乐理知识教学,提高学生音乐素养

ADO.NET数据库访问技术

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数据库操作技术实验报告

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">登&nbsp;录</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">密&nbsp;码</td><td style="width: 100px"><asp:TextBox ID="txtPassword"runat="server"TextMode="Password" Width="145px"></asp:TextBox></td></tr><tr><td style="width: 100px">&nbsp;</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控件,熟悉了如何设置这个控件的基本属性,同时也加强了对其他控件的掌握。

使用ADO_NET访问数据库

使用ADO_NET访问数据库

使用ADO_NET访问数据库连接对象(Connection)用于建立与数据库的连接。

使用时需要提供数据库的连接字符串,连接字符串包含了数据库的类型、服务器地址、用户名、密码等信息。

下面是一个连接字符串的示例:```Server=127.0.0.1;Database=myDatabase;UserID=myUsername;Password=myPassword;```可以使用 SqlConnection 类来创建连接对象,并通过 Open 方法打开连接,通过 Close 方法关闭连接。

连接对象还提供了一些其他的属性和方法,如 ConnectionString 属性用于设置连接字符串,State 属性用于获取连接的状态,等等。

数据读取器对象(DataReader)用于按顺序读取查询结果中的数据。

可以使用 SqlDataReader 类创建数据读取器。

在使用数据读取器读取数据时,需要使用 Read 方法获取下一条记录,并使用索引或列名访问具体的数据值。

读取完数据后需要调用 Close 方法关闭数据读取器。

首先,创建一个名为 Student 的数据库,包含一个名为 Students 的表,表中包含三个字段:ID、Name 和 Age。

```sqlCREATE DATABASE Student;USE Student;CREATE TABLE StudentsIDINTPRIMARYKEY,Name NVARCHAR(50),Age INT```然后,创建一个 C# 控制台应用程序,添加对System.Data.SqlClient 的引用。

```csharpusing System;using System.Data;using System.Data.SqlClient;namespace StudentManagementclass Programstatic void Main(string[] args)string connectionString ="Server=127.0.0.1;Database=Student;UserID=myUsername;Password=myPassword;";using (SqlConnection connection = new SqlConnection(connectionString))connection.Open(;//插入数据Console.WriteLine("插入数据成功");}//查询数据while (reader.Read()int id = reader.GetInt32(0);string name = reader.GetString(1);int age = reader.GetInt32(2);Console.WriteLine($"ID: {id}, Name: {name}, Age: {age}"); }}//更新数据Console.WriteLine("更新数据成功");}//删除数据Console.WriteLine("删除数据成功");}connection.Close(;}}}```编译运行该应用程序,将会得到以下输出:```插入数据成功ID: 1, Name: 张三, Age: 20更新数据成功删除数据成功```。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11.4.2 使用DataGridView显示数据
• 【本节示例参考:\源代码\chapter11\11.4.2\DataGridViewExample】 • DataGridView控件的使用也非常傻瓜化,下面通过一个完整的实例来学习
DataGridView的使用。 • (1)添加控件到窗体。在工具箱中添加一个DataGridView控件和一个
• 了解后,下面介绍怎样用操作数据库。以及如何 通过System.Data.SqlClient命名空间提供的数据对象模型操作 SQL Server 2005数据库。本节模拟一个超市管理系统,对超市物 品进行增、删、改、查等操作。
11.2.1 创建数据库
• 为了完成本章的项目,需要创建一个超市物品信息管理数据库。 关于数据库的学习不是本书的重点,所以在此不作详细介绍。读 者只须按照下面的步骤进行数据库的创建。
• 提供了从应用程序到数据库的访问技术,在应用程序和数据库之 间架起了一座桥梁,如图11.2所示。主要分为两个部分,如图 11.3所示。其中DataSet数据集提供了独立于数据源的数据访问方 法,.NET Framework数据提供程序提供了只进、只读的数据访问方法。
11.2 用操作数据库
11.4 数据操作多面手:DataGridView控件
• 通过以上的学习,我们基本掌握了操作数据库的两种方法。 DataSet断开式数据库操作也有很多的优点,比如便于与控件绑定、 易于持久化、数据可排序、跟XML良好结合等。其中,跟控件绑定 的方式让C#的数据库程序开发显得如此简单和快速。本章将向大 家介绍一个数据显示及操作多面手:DataGridView控件。
11.2.3 使用命令更改数据库
• 【本节示例参考:\源代码\chapter11\11.2.3\CommandExample】 • 作为超市管理系统,管理员需要做货物增加、查询等操作,如果用户购买
了货物,还要在库存中减去货物量。这些操作,用程序的思想去理解就是: 执行相应的命令。如“在库存中添加100袋苹果圈”、“在库存中取出20 袋苹果圈”等。在中,通过SqlCommand对象对SQL Server数据库 执行这样的命令。 • 当连接到数据库以后,就可以对数据表进行增删改查等相应的操作了, 提供SqlCommand对象用于执行相应的Transact-SQL语句或存储过 程,利用SqlCommand对象可以直接对数据库进行处理,如图11.15所示。
第11章 使用数据库访问技术
• 在前面的两章,我们学习了Windows应用程序开发界面设计。实际应用中 的程序软件,经常会涉及到大量数据的检索和处理,这就需要用到数据库 编程技术。
• 是通用的在.NET平台下的数据库访问技术。聚集了所有可 以进行数据处理的类。这些类呈现了具有典型数据库功能的数据操作,比 如:查询、索引、排序、修改。是.NET平台的数据库应用程序解 决方案。
• 在Windows窗体应用程序中,用于显示从数据库中检索到的数据的主要用 户界面控件为DataGridView。通过所谓的数据绑定功能,可以极大地简化 将数据源连接到用户界面控件(如文本框和列表框)的操作。将控件绑定 到数据源中的字段后,对其中一项的更改会自动反映在另一项上。本章主 要涉及到的知识点有:
• 仓库——数据库 • 临时仓库——数据集 • 仓库与临时仓库之间的路——数据库连接 • 运货车——数据适配器
11.3.3 填充数据集
• 【本节示例参考:\源代码\chapter11\11.3.2\DatasetExample】 • 创建好DataSet以后,如何将数据库的数据放在DataSet中呢?这
• 要读取数据库中的数据,首先需要连接到数据库,然后调用 SqlCommand对象的ExecuteReader方法,如图11.21所示。
11.3 用DataSet数据集操作数据库
• 在上一节,学习了通过.NET Framework数据提供程序操作只进、 只读的数据库。下面学习的第二种数据访问方式,即通过 DataSet数据集操作独立于数据源的数据。本节同样模拟一个超市 管理系统,对超市物品进行增、删、改、查等操作。
“关闭”按钮,如图11.31所示。 • (2)选择数据源。指定DataGridView的数据源的方式有两种,一是设置
DataGridView的DataSource属性即可;二是使用图形化的选择工具。我们 使用第二种方式,在图11.31中,单击DataGridView右上角的按钮,展开 如图11.32所示的提示对话框,在对话框中选择相应的数据源。
时就需要一个充当超市运货车的工具,叫做数据适配器 (DataAdapter)。 • 跟运货车一样,数据适配器是数据库和数据集之间的桥梁,通过 数据适配器就可以将数据库中的数据填充到数据集(采用 DataAdapter对象的Fill方法),反之,则可以将数据集中修改的 数据保存到数据库(采用DataAdapter对象的Update方法),如图 11.26所示。适配器填充数据的操作方法如下面的代码所示:
• DataSet是支持的断开式、分布式数据访问方案。DataSet 是数据的内存驻留表示形式,无论数据源是什么,DataSet都会提 供一致的关系编程模型。DataSet表示包括相关表、约束和表间关 系的数据集。可以这样认为,DataSet就是一个在内存中的数据库 副本,一个DataSet对象就是一个数据库。数据集的工作原理如图 11.24所示。
• 了解数据库应用程序,以及的实现原理。 • 了解数据访问对象模型。 • 使用System.Data命名空间的类操作数据库。 • 使用DataSet数据集操作数据库。 • 使用DataGridView控件绑定数据集。
11.1 鸟瞰
• 在Visual C#应用程序中,可以使用在.NET Framework类库的 System.Data和相关命名空间中公开的技术与数据库进行 连接。在Visual Studio 2008中引入了LINQ to SQL,它提供了简 单的强类型查询功能及对象关系映射功能。
11.4.3 使用DataGridView保存修改后的数据
• 【本节示例参考:\源代码 \chapter11\11.4.3\DataGridViewExample】
• 读者发现,DataGridView就跟Excel表格一样,显示的单元格都是 可以编辑的。读者可以试一下,把毛毛香皂的数量改为80,然后 关闭程序,再次运行,结果发现毛毛香皂的数量并没有改变,还 是原来的100。这是为什么呢?
11.2.4 使用命令检索数据
• 【本节示例参考:\源代码 \chapter11\11.2.4\DataReaderExample】
• 超市管理系统中,每样货物都有一个唯一的编号,用于货物的查 询、打印账单、货物统计等。管理员也需要通过这个编号去查询 该货物的详细信息。用程序的思想去理解就是:执行相应的命令, 返回相应的结果。在中,通过SqlDataReader读取数据源 在执行命令获得的结果。
11.1.1 数据访问的必要性
• 软件代替传统的纸和笔的最主要一个影响,就是改变了数据和信 息的存储方式。在软件编程中,经常会遇到对数据的访问和操作。 比如,给超市开发一套超市收银管理系统,就会涉及到对商品查 询、入库、销售、统计的操作,如图11.1所示。
11.1.2 3.5简介
11.4.1 认识DataGridView控件
• DataGridView控件位于工具箱的“数据”选项卡中,如图11.30所 示。DataGridView是WinForms中一个非常强大的控件,在 DataGridView可以显示数据查询结果,也可以直接修改和删除数 据。
• DataGridView就也可以直接编辑数据。若要想指定 DataGridView显示哪个表的数据,只需要设置它的DataSource属性 即可。DataGridView的主要属性如表11.2所示。
11.2.2 连接到数据库
• 【本节示例参考:\源代码\chapter11\11.2.2\ConnectionExample】 • 顾客到超市买东西,要买到东西的前提是顾客要到超市去。也就是说,顾
客和超市要建立连通。同理,在中,要让程序操作数据库,首先 要创建一个程序到SQL Server的连接。在中用SqlConnection对象 打开到SQL Server的连接,如图11.11所示。 • 各种数据库的连接方式有所不同,下面通过一个实例来学习 SqlConnection连接SQL Server 2005 Express版本数据库的用法。设计一 个界面如图11.12所示的Windows应用程序,当用户输入相应信息,单击 “连接”按钮,则连接到数据库。
11.3.4 保存DataSet中的数据
• 上节讲解了通过DataAdapter的Fill方法填充数据集,那么, 怎样把数据集中修改过的数据保存到数据库呢?这就需要 使用DataAdapter的Update方法。
• 就像通过SQL查询命令填充数据集一样,更新数据也需要有 相关的命令,.NET提供了一个SqlCommandBuilder对象,使 用它可以自动生成需要的SQL命令。把数据集中修改过的数 据保存到数据库,只需要两个步骤:
• (1)使用SqlCommandBuilder对象生成更新用的相关命令。 创建SqlCommandBuilder对象的语法如下:
• SqlCommandBuilder builder = new SqlCommandBuilder(已经创建的DataAdapter对象);
• (2)调用DataAdapter对象的Update方法。语法如下: • adapter对象.Update(DataSet对象,”数据表名称”);
11.3.1 认识数据集:DataSet
• 一个大型的超市,每天都有供货商运送货物过来,运送的货物首 先会存放在一个临时仓库里面,当管理员清点完以后,再正式放 入超市仓库。这里的临时仓库起到了一个货物中转的作用。跟现 实情况一样,中的DataSet提供了类似临时仓库的数据操 作方式。
相关文档
最新文档