5.5.1 存储过程的优点 ① 事务处理 ② 速度和性能 ③ 过程控制 ④ 安全性 ⑤ 减少网络流量和通信 ⑥ 模块化

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#
Database Management System 資料庫管理系統
十一 ASP对数据库的访问.
第7章利用ADO.NET 进行数据访问.
第2讲 Transact-SQL语言.
ASP.NET 網頁製作教本 – 從基本語法學起
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
MVC Servlet与MVC设计模式.
資料庫 (Database) SQL Server 2008實作
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
文科计算机小公共课规划教材 Access 程序设计.
Chap 13 視界與資料庫程式設計.
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
Web Part與 個人化網頁製作 資策會教育訓練處 王寧疆 MCAD.NET/MCSD.NET/MCT
第 8 章 資料的 新增、修改與刪除.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
課程名稱:資料庫系統 授課老師:李春雄 博士
在 Web 应用中,导航是非常重要的。ASP
Chapter 12 T-SQL 語法與 ASP.NET.
第 11 章 建立檢視表.
第 14 章 預存程序.
資料庫安全 (Database Security)
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
ADO.NET.
課程名稱:資料庫系統 授課老師:李春雄 博士
主 讲 教 师:陆有军 Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军
課程名稱:資料庫系統 授課老師:李春雄 博士
第6章 ADO.NET数据访问接口 6.
上述代码规范了 INSERT 语句的编写规范,其中:
第2章 ADO.NET 2.0概述.
SQL Server 2000 数据库入门.
第7章 ADO.NET操作SQL Server数据库
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
讲课人:王璞 浙江工商职业技术学院.
5.1.1 使用 ExecuteReader()操作数据库
1 创建SqlDataSouce控件 数据源控件(SqlDataSource)
操作数据库 C#程序设计课程组.
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
第10章 網頁資料庫的顯示與維護 10-1 再談資料控制項 10-2 GridView控制項 10-3 DetailsView控制項
FormView 控件只能显示数据库中一行的数据,并且提供对数据的分页操作,FormView 控件可以以 一种不规则的外观来将数据呈现给用户。FormView 控件同样支持模板,以方便开发人员自定义 FormView 控件的 UI,FormView 控件支持的模板如下所示: ItemTemplate:用于在.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
C# 程序设计教程 同济大学计算机系基础学科组
Connection对象 访问数据库的第一步是建立连接,只有建立连接,才可能实现 在数据库和应用程序之间移动数据。 ADO提供了连接对象:
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第10章 網頁資料庫顯示與維護控制項 10-1 資料來源控制項 10-2 Repeater控制項 10-3 DataList控制項
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
  重复列表控件(Repeater)是一个可重复操作的控件。它能够通过使用模板显示一个数据源的内容, 而且开发人员可以轻松的配置这些模板,Repeater 控件包括如标题和页脚这样的数据,它可以遍历所有 的数据选项并将其应用到模板中。 重复列表控件并不是从 WebControl 派生出来,重复列表控件可以直接操控.
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
SQL Server Mobile 2005 程序开发(三)
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
补充:c#语言基础.
第 15 章 自訂函數與順序物件.
C#程序设计基础 $3 成员、变量和常量.
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
SQL查询语句 蔡海洋.
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
第三章 SQL Server数据管理.
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
第二章 Java基本语法 讲师:复凡.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
C#快速導讀 流程控制.
第二章 Java基本语法 讲师:复凡.
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

5.5.1 存储过程的优点 ① 事务处理 ② 速度和性能 ③ 过程控制 ④ 安全性 ⑤ 减少网络流量和通信 ⑥ 模块化 5.5.1 存储过程的优点 ① 事务处理 ② 速度和性能 ③ 过程控制 ④ 安全性 ⑤ 减少网络流量和通信 ⑥ 模块化 在数据库操作中,已经有了 SQL 语句,为何还需要存储过程。因为存储过程有 SQL 语句不能具备 的特点和优点,以至于存储过程能在严格的数据库驱动的应用程序中起到重要的作用。存储过程包括

5.5.1 存储过程的优点 ①事务处理 存储过程中,包括多个 SQL 语句,存储过程中的 SQL 语句属于事务处理的范畴。也就是说,存储过程类似于一个函数,当执行存储过程时,存储过程中的 SQL 语句要不都执行,要不都不执行。 ②速度和性能 存储过程由数据库服务器编译和优化,优化包括使用存储过程在运行时所必须的特定数据库的结构信息,这样在执行过程中会节约很多时间。存储过程完全在数据库服务器上执行,避免了大量的 SQL语句代码的传递,对于循环使用 SQL 语句而言,存储过程在速度和性能上都被优化。 ③过程控制 在编写存储过程中,可以使用 IF ELSE、FOR 以及 WHILE 循环,这些语句并不能在 SQL 语句中编 写,但是可以在存储过程中编写。当需要进行大量的和复杂的操作时,SQL 语句需要通过和编程语言一 同编写才能实现,而且实现复杂。相比之下,存储过程可以对过程进行控制。

5.5.1 存储过程的优点 ④安全性 存储过程也可以作为额外的安全层。开发人员或者用户,都只能对数据库中的存储过程进行使用,而无法直接对表进行数据操作,这样封装了数据操作,提高安全性。 ⑤减少网络流量和通信 存储过程是在数据库服务器上运行的,在使用存储过程中,无需将大量的 SQL 语句代码传递给数 据库服务器,而只需告诉数据库服务器执行哪个存储过程即可,而数据库服务器则会自行执行中间处理 操作,而不会通过网络传递不必要的数据。 ⑥模块化 正如代码编写规范和设计模式一样,通常情况下,开发团队或者公司需要严谨的代码编写风格和良好的协调能力,例如一个团队有人专门负责编码,有人专门负责数据库开发,那么可以让数据库开发人员负责数据库的开发,而编码的程序员只需要使用数据库开发人员设计的存储过程即可。在这种情况下, 数据库操作和应用程序编码的操作被分开,在维护、管理中,也非常方便,如果数据库存储过程的代码 出现问题,则只需要修改存储过程中的代码即可。

5.5.2 创建存储过程 存储过程可以通过 SQL Server Management Studio 创建,也可以使用.NET 框架通过编程实现.SQL Server Management Studio 创建存储过程比较方便,右击【对象资源管理器】中的相应的数据库,在下拉菜单中选择【可编程性】选项并选择【存储过程】选项。单击右键,选择【新建存储过程】选项,系统会自动创建一个新的标签(tab)窗口,以提供输入存储过程语句,如图所示。

5.5.2 创建存储过程 上述存储过程返回了数据库中新闻的标题内容。“@id”表示新闻的 id,@title 表示新闻的标题, 此存储过程将返回“@title”的值,并且返回新闻的总数。在 C#中同样可以使用编程实现存储过程的创 建,示例代码如下所示。 string str = "CREATE PROC myproc" + "(" + "@id int," + "@title varchar(50) OUTPUT" + ")" + "AS" + "SET NOCOUNT ON" + "DECLARE @newscount int" + "SELECT @title=mynews.title,@newscount=COUNT(mynews.id)" + "FROM mynews" + "WHERE (id=@id)" + "GROUP BY mynews.title" + "RETURN @newscount"; SqlCommand cmd = new SqlCommand(str, con); cmd.ExecuteNonQuery(); //使用 cmd 的 ExecuteNonQuery 方法创建存储过程 上述代码通过使用 SqlCommand 对象的 ExecuteNonQuery()方法在数据库中创建了一个存储过程, 该存储过程用于返回了数据库中新闻的标题内容。

5.5.3 调用存储过程 创建存储过程之后,可以在.NET 应用程序中使用存储过程。存储过程可以看成是一个函数,可以 对存储过程进行调用,传递参数,接受返回值。在调用存储过程前,首先要与数据库建立连接,示例代 码如如下所示。 string str = "server='(local)';database='mytable';uid='sa';pwd='Sa'"; SqlConnection con = new SqlConnection(str); con.Open(); //打开连接 建立与数据库连接后,需要使用Command对象使用存储过程,Command对象接受的两个参数分别 为SQL 语句和Connection对象,在使用存储过程时,其中表示SQL语句的参数可以直接编写为存储过 程名,代码如下所示。 SqlCommand cmd = new SqlCommand("getdetail", con); //使用存储过程 默认情况下,Command 对象的类型是 SQL 语句,必须将 Command 对象的 CommandType 属性设置 为存储过程,系统才会调用存储过程,示例代码如下所示。 cmd.CommandType = CommandType.StoredProcedure; //设置 Command 对象的类型

5.5.3 调用存储过程 设置执行类型后,需要为存储过程增加参数,示例代码如下所示。 5.5.3 调用存储过程 设置执行类型后,需要为存储过程增加参数,示例代码如下所示。 参数设置完毕后,执行 ExecuteNonQuery 方法能够执行存储过程,就相当于开始调用函数,示例代 码如下所示。 SqlParameter spr; spr = cmd.Parameters.Add("@id", SqlDbType.Int); spr = cmd.Parameters.Add("@title", SqlDbType.NChar,50); spr.Direction = ParameterDirection.Output; spr = cmd.Parameters.Add("@count", SqlDbType.Int); spr.Direction = ParameterDirection.ReturnValue; cmd.Parameters["@id"].Value = 1; cmd.Parameters["@title"].Value = null; //表示执行一个存储过程 //增加参数 id //增加参数 title //该参数是输出参数 //增加 count 参数 //该参数是返回值 //为参数初始化 cmd.ExecuteNonQuery(); //执行存储过程 当存储过程执行完毕后,能够获取参数和返回值,示例代码如下所示。 Label1.Text = cmd.Parameters["@count"].Value.ToString(); //获取返回值

5.5.3 调用存储过程 使用 SQL Server Management Studio 同样能够执行存储过程,单击存储过程,单击右键,选择执行 存储过程,系统会提示输入参数,如图左所示。输入相应的参数,单击确定,系统会执行存储过程并返回相应的值,如图右所示。 使用 SQL Server Management Studio 能够快速的创建和使用存储过程,同样,能够通过编程的方法 实现存储过程的创建、参数的传递以及执行。存储过程的优点就在于速度比较快,能够控制过程、减少 网络通信和模块化,熟练的使用存储过程能够提高应用程序的性能和复用性。

5.6.1 制作用户界面(UI) 使用数据控件和数据源控件显式数据,则需要为控件制作相应的用户界面,让数据控件对用户呈现 的效果更好。首先,需要使用创建数据绑定控件GridView和数据源控件,并配置数据源控件,如图所示。 显然,对于用户而言,该数据源控件和数据绑定控件显然很不友好,这里就需要对数据绑定控件的 界面进行修改。通过配置数据绑定控件的相应格式可以修改数据绑定控件的外观,如图所示。

5.6.1 制作用户界面(UI) 开发人员能够自定义数据绑定控件的样式,并且修改某些列的顺序,这里使用了自动套用格式,并 将数据绑定控件的 width 属性设置为 100%,这样编写宽度就能够适应浏览器的大小,从而随着浏览器的大小而改变。数据绑定控件配置完成后,值得注意的是,需要勾选 SQL 语句的高级选项,让数据绑 定控件支持编辑、删除和选择,如图所示。

开发人员可以编写以上 HTML 实现更多的效果,当确定用户界面编写完毕后,就可以为数据绑定 控件选择操作了。 5.6.1 制作用户界面(UI) 配置SQL高级选项后,数据源控件就会自动生成INSERT、UPDATE、DELETE 语句,示例代码如 下所示。 在完成用户界面的配置后,系统生成的 HTML 代码如下所示。 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:mytableConnectionString %>" DeleteCommand="DELETE FROM [mynews] WHERE [ID] = @ID" InsertCommand="INSERT INTO [mynews] ([TITLE]) VALUES (@TITLE)" SelectCommand="SELECT * FROM [mynews]" UpdateCommand="UPDATE [mynews] SET [TITLE] = @TITLE WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="Int32" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="TITLE" Type="String" /> </UpdateParameters> <InsertParameters> </InsertParameters> </asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="ID" DataSourceID="SqlDataSource1" GridLines="Horizontal" Width="100%"> <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /> <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" /> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="TITLE" HeaderText="TITLE" SortExpression="TITLE" /> </Columns> <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" /> <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" /> <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" /> <AlternatingRowStyle BackColor="#F7F7F7" /> </asp:GridView> 开发人员可以编写以上 HTML 实现更多的效果,当确定用户界面编写完毕后,就可以为数据绑定 控件选择操作了。

配置完成用户界面,则需要选择 GridView 控件的属性并配置 GridView 任务,如图所示。

5.6.2 使用 GridView 显示、删除、修改数据 GridView控件支持分页、排序、编辑、删除和选定内容等操作。在GridView控件中,首先必须勾 选【分页】复选框,然后再配置PageSize属性才能够让GridView控件支持分页功能。在GridView控件属性中如果勾选了【分页】复选框而不配置PageSize属性,则默认按10条数据分页。勾选了以启用分页、启用编辑、启用删除和启用选定内容后,GridView控件的界面如图左所示。因为在数据源控件配置的过程中,已经配置了支持编辑、删除和选择,所以在数据绑定控件中可以 选择启用编辑,启用删除和选定内容等操作,并且系统默认支持更新、插入、删除等操作,运行后如图右所示。

5.6.2 使用 GridView 显示、删除、修改数据 GridView 控件支持编辑、删除和选择,当单击编辑时,能够对选择的行进行数据编辑,如图左所示。编辑完成后,单击更新按钮则可以执行更新操作,而无需手动编写 UPDATE 操作,如图右所示。 当单击删除时,则会执行 DELETE 命令,而无需手动编写 DELETE 命令。GridView 控件支持分页、 排序、编辑、删除和选定内容,开发人员无需手动编写更新、删除、编辑、也无需手动编写分页,对 GridView 控件进行缓存设置能够提高应用程序性能,在对数据库的操作,编辑及更新中,GridView 控 件能够方便开发人员,简化代码。

5.6.3 使用 DataList 显示数据 DataList控件需要编辑HTML模板来显式数据,虽然在开发上,DataList控件比GridView更加复杂, 但是DataList控件能够实现更多效果。相比之下,DataList控件比GridView控件更加灵活,能够进行复 杂的事件编写和样式控制。选择【自动套用格式】复选框并将DataList控件的宽度设置为 100%,编辑 基本的用户界面,如图左所示。通过编辑ItemTemplate能够实现自定义模板,而无需像GridView一样,以表格形式呈现,编辑后 运行如图右所示。 DataList 控件执行数据操作基本上同 GridView 一样,DataList 控件与 GridView 相比只下,有着更 灵活的模板方案,能够实现更多的显示效果。

5.6.4 DataList 分页实现 DataList控件本身并不带分页实现,如果需要DataList能够实现分页效果,则需要通过代码实现DataList 控件的分页。DataList控件分页需要增加若干标签(Label)控件来显式“上一页”,“下一页” 等分页所需要的连接,示例代码如下所示。 <asp:Label ID="Label4" runat="server" Text="Label"></asp:Label> <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label> <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> 上述代码创建了三个 Label 控件,这三个控件并无需初始化,这三个控件通过编程实现上一页,下 一页的分页形式。如果需要执行分页,则需要编写 cs 页面代码,cs 页面代码如下所示。 PagedDataSource objPds = new PagedDataSource(); objPds.DataSource = this.SqlDataSource1.Select(new DataSourceSelectArguments()); objPds.AllowPaging = true; //设置是否允许分页 objPds.PageSize = 3; //设置分页条目数 int CurPage; //设置当前页码 Label2.Visible = false; //隐藏标签 Label4.Visible = false;

5.6.4 DataList 分页实现 上述代码初始化PagedDataSource对象,并将分页控件默认初始化属性Visible为false。其中 PagedDataSource 是封装分页相关属性的类。 if (Request.QueryString["Page"] != null) { //如果传递的页面不为空 CurPage = Convert.ToInt32(Request.QueryString["Page"]); //获取传递的参数 } els e CurPage = 1; //页面的值为 1 objPds.CurrentPageIndex = CurPage - 1; Label2.Visible = true; Label4.Visible = true; Label3.Text = "<a href=\"datalist.aspx\">首页</a>"; //设置索引 //显式标 签 //编写分页 Label2.Text = "<a href=\"datalist.aspx?page=" + Convert.ToString(CurPage + 1) + "\">下一页</a>"; Label4.Text = "<a href=\"datalist.aspx?page=" + Convert.ToString(CurPage - 1) + "\">上一页 </a>";

5.6.4 DataList 分页实现 上述代码通过传递的 Page 的值进行分页操作,如果传递的 Page 的值为不为空,则从数据源控件中 读取相应的数据,并显示到数据绑定控件中。 if (CurPage == 1) { Label4.Visible = false; } if (objPds.IsLastPage) Label2.Visible = false; DataList1.DataSourceID = ""; DataList1.DataSource = objPds; DataList1.DataBind(); //如果只有一个页面 //隐藏标签   //重新绑定数据 //编写 DataList 的数据源 //绑定数据源

5.6.4 DataList 分页实现 上述代码通过PagedDataSource 对象实现了分页效果,并且将分页条目数设置为3,当数据超过3条时,则会实现分页。运行后如图所示。 DataList 控件虽然不支持分页,但是能够通过编程实现 DataList 控件的分页效果。DataList 控件在 模板编辑和代码开发上虽然没有 GridView 方便,但是却提高了灵活性,能够自定义分页和数据显示。

1 5.6.5 使用 SQLHelper 操作数据库 创建SQLHelper SQLHelper类经常在数据库开发中使用,不仅封装了数据库操作,也提高了数据库操作的安全性, SQLHelper在微软的开发中和DEMO中经常被使用,SQLHelper通常用于多层设计,如果需要使用SQLHelper类,可以到微软官方下载最新的SQLHelper类,也可以自行编写SQLHelper类。如果自行创建SQLHelper 类,则在解决方案管理器中新建一个类库,如左图所示。创建类库后,删除自动生成的Class1 类,并创建一个新类,类名为SQLHelper,如右图所示。

5.6.5 使用 SQLHelper 操作数据库 如果使用下载的SQLHelper类,则可以单击解决方案管理器,单击右键,选择添加现有项,然后选 择现有项目添加即可。在SQLHelper类下对数据操作进行封装,开发人员能够使用自己封装的类进行数 据操作,示例代码如下所示。

5.6.5 使用 SQLHelper 操作数据库 在上述代码中,还需要通过一个枚举类型进行switch操作,枚举类型用于判断执行的操作,示例代码如下所示。 public enum SDACmd { select, delete, update, insert } //定义枚举类型 定义的枚举类型用于在程序中进行筛选操作,用于指定 SQL 语句执行的操作。在 SQLHelper 类中, 还需要封装 DataReader 方法进行 DataReader 的封装和实现,开发人员能够使用 SQLHelper 类中的 DataReader 方法进行数据库的读取,示例代码如下所示。 public static SqlDataReader ExecReader(string sqlcmd, params SqlParameter[] paraList) { SqlConnection con = new SqlConnection(condb); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sqlcmd; if (paraList != null) cmd.CommandType = CommandType.Text; foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } } con.Open(); //创建连接对象 //创建 Command 对象 //使用连接 //配置 SQL 语句 //配置 Command 类型   //添加参数 //打开连接 SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sdr;

上述代码编写了 SQLHelper 类操作数据库的函数,通过执行函数并传递参数,即可实现数据库的插 入、更新和删除。 上述代码实现了DataReader对象,使用DataReader能够填充SqlDataReader对象并进行数据的循环输出。在ADO.NET中,通常需要执行SQL语句进行数据库的操作,在SQLHelper类中,同样需要封装执行 SQL 语句的操作以便能够快速执行数据操作。 public static void ExecNonQuery(string sqlcmd, params SqlParameter[] paraList) { using (SqlConnection con = new SqlConnection(condb)) SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sqlcmd; if (paraList != null) cmd.CommandType = CommandType.Text; foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } } con.Open(); cmd.ExecuteNonQuery(); //创建连接对象 //创建 Command 对象 //使用连接 //配置执行类型   //添加参数 //打开数据连接 //执行 SQL 语句 上述代码编写了 SQLHelper 类操作数据库的函数,通过执行函数并传递参数,即可实现数据库的插 入、更新和删除。

创建完成 SQLHelper 类后,需要为应用程序配置 SQLHelper 的基本属性,代码如下所示。 2 使用SQLHelper 创建完成 SQLHelper 类后,需要为应用程序配置 SQLHelper 的基本属性,代码如下所示。 private static readonly string database = "mytable"; private static readonly string uid = "sa"; private static readonly string pwd ="sa"; private static readonly string server = "local"; //配置数据库 //配置用户名 //配置用户会密码 // 配置服务器的值 上述代码为SQLHelper类配置了属性,当使用SQLHelper类时,系统会自动连接数据库,在完成使 用后,系统会自动关闭数据库。如果需要在当前项目使用SQLHelper类,则需要添加引用来使用SQLHelper类,右击现有项目,在下拉菜单中选择【添加】选项,在【添加】选项中选择【现有项】选 项,在弹出窗口中选择【项目】标签栏,就可以添加相同项目的类库,如图所示。

5.6.5 使用 SQLHelper 操作数据库 引用添加完毕,在使用 SQLHelper 页面的 CS 页面中,需要添加命名空间,命名空间的名称和创建 类库的名称相同,如果需要更改名称,可以通过修改类库的属性来修改。示例代码如下所示。 using MYSQL; 引用完毕后,就可以执行 SQL 语句,使用 SQLHelper 执行 SQL 语句非常方便,下面代码演示了如何执行插入、删除操作。 string strsql = "insert into mynews values ('SQLHelper 插入标题')"; SQLHelper.ExecNonQuery(strsql); //编写 SQL 语句 //执行 SQL 语句 上述代码运行后,则会执行插入操作,相比于 ADO.NET,封装后的代码更加简便易懂,删除操作 代码如下所示。 string strsql2 = "delete form mynews where id=3"; SQLHelper.ExecNonQuery(strsql2); //编写 SQL 语句 //执行 SQL 语句

当需要执行 SELECT 语句时,可以通过 SQLHelper.DataAdapter 获取数据,示例代码如下所示。 string strsql = "select * from mynews where id=3"; //编写 SQL 语句 DataSet ds = SQLHelper.DataAdapter(strsql, SQLHelper.SDACmd.select, "mydatatable"); 上述代码通过 SQLHelper.DataAdapter 获取数据,并创建了一个 mydatatable 虚拟表,填充 DataSet 对象。当需要获取 DataSet 对象中的数据时,和普通的 DataSet 对象一样。SQLHelper 封装了 ADO.NET 中的许多方法,为开发人员提高了效率,同时也增加了安全性和模块化的特性。 注意:上述代码中的 SQLHelper 类能够执行的是 SQL 语句,如果需要执行存储过程,则需要更改 SQLHelper 类中的相应的 CommandType 属性的值。