ASP.NET动态网站制作(24)-- ADO.NET(3)
前言:ADO.NET的第三节课。今天主要讲SQL Helper。
内容:
1.DataReader和DataSet的区别:
(1)DataReader是一行一行地读,且只能向前读;DataSet是一次性读取出来放到内存中,所以,DataReader读取速度更快,占用内存更低。
(2)DataReader需要一直和数据库保持连接,DataSet读取完后即和数据库断开。
(3)DataSet里面可以存储多个结果集(DataTable)。
(4)DataSet可以对数据进行缓存,而DataTable不行。
做大型网站的时候需要涉及到缓存技术。
2.SQL Helper是一个基于.NET Framework的数据库操作组件,组件中包含数据库的操作方法,其用于简化重复地写数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SQL Helper封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,变得方便了很多。
SqlHelper.cs:
using System;
using System.Data;
using System.Data.SqlClient; namespace SqlHelper
{
public class SqlHelper
{
//定义一个字符串变量,把数据库连接字符串赋值给它,也可以把连接字符串添加到配置文件,这样项目也可以方便访问,这里是为了清楚直接复值到字符串变量
private static string connstr =
"Data Source=127.0.0.1\\SQL2008; Initial Catalog=Test; User ID=test; Password=test"; //执行查询语句并返回一个内存中的数据表
public DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr)) //连接到数据库
{
conn.Open(); //打开数据库连接
using (SqlCommand cmd = conn.CreateCommand()) //创建执行对象
{
cmd.CommandText = sql; //给cmd赋值sql语句
cmd.Parameters.AddRange(parameters); //把sql语句参数添加到cmd
DataSet dataSet = new DataSet(); //创建DataSet对象,用于保存查询结果 SqlDataAdapter adapter = new SqlDataAdapter(cmd); //执行cmd,更新数据结果到adapter对象
adapter.Fill(dataSet); //把结果添加到DataSet对象中 return dataSet.Tables[]; //返回一个查询结果的一个表
}
}
} //执行查询语句返回结果集合的第一行第一列
public Object ExecuteScalar(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar(); //执行查询,返回查询结果的第一行的第一列
}
}
} //执行参数化SQL语句,返回受影响的行数
public int ExecuteNoneQuery(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery(); //执行数据库语句并返回受影响的行数
}
}
}
}
}
3.老师现场写代码,涉及到了很多知识点,得好好消化一下了。
后记:多多练习。
ASP.NET动态网站制作(24)-- ADO.NET(3)的更多相关文章
- ASP.NET动态网站制作(3)--css(2)
前言:css分为四次课讲完,第一节课内容见ASP.NET动态网站制作(2)--css(1),接下来的内容会涉及到定位.浮动.盒子模型(第二次课).css的具体应用(第三次课).css3(第四次课).今 ...
- ASP.NET动态网站制作(22)-- ADO.NET(1)
前言:这节课开始真正地学习WEB开发,ADO.NET就是一组允许.NET开发人员使用标准的.机构化的,甚至无连接的方式与数据交互的技术.所属的类库为:System.Data.dll. 内容: 1.AD ...
- ASP.NET动态网站制作(23)-- ADO.NET(2)
前言:这节课老师请高级班的E老师过来代课,还是接着老师讲的内容继续深入,修改了上节课老师写的部分代码. 内容: 1.数据库本质就是一个软件,这个软件帮助我们把数据有序地存储起来,当我们需要数据的时候帮 ...
- ASP.NET动态网站制作(25)-- ADO.NET(4)
前言:这节课老师主要讲网页当中内容的分页效果,自己写一个分页控件. 内容: 1.首先写出HTML代码: <div id="pager"> <%=GetPagerH ...
- ASP.NET动态网站制作(26)-- Ajax
前言:这节课讲解关于Ajax的相关内容. 内容: 1.当点击页面中的一个按钮提交数据或请求数据的时候,整个页面的信息都会提交(不管信息是否是提交或者请求的数据,页面中所有的数据都提交),这样耗用的时间 ...
- ASP.NET动态网站制作(20)-- C#(3)
前言:C#的第三节课,继续上次课的内容,依旧围绕基础的只是讲解. 内容: 1.StringBuilder类:由于string类一旦创建,则不能更改.如果做字符串拼凑的话,将会非常耗费空间,如: str ...
- ASP.NET动态网站制作(1)--html
前言:正式上课的第一课,讲的是前端部分的最基础内容:html. 前端:html,css,js 数据库:sql server 动态部分:.net,c#... IIS(Internet Informati ...
- ASP.NET动态网站制作(0)
前言:一直想系统地学习一下网站建设的相关内容,看过相关的书籍,也跟着视频学过,但总觉得效率不高,学过的东西印象不深刻,或许还是自己动手实践的少.无意中免费听了一堂讲ASP.NET网站建设的课,觉得性价 ...
- ASP.NET动态网站制作(28)-- 三层框架(2)
前言:三层框架的第二节课,继续上次课的内容. 内容: 1.三层框架的使用目的:可以将视图层和业务逻辑层及实体层分开,可以提高代码的扩展性,安全性,可以实现程序的低耦合性. 2.GetModel方法及G ...
随机推荐
- Coherence装载数据的研究-PreloadRequest
最近给客户准备培训,看到Coherence可以通过三种方式批量加载数据,分别是: Custom application InvocableMap - PreloadRequest Invocation ...
- PostgreSQL on Linux 最佳部署手册
安装常用包 # yum -y install coreutils glib2 lrzsz mpstat dstat sysstat e4fsprogs xfsprogs ntp readline-de ...
- VS2010中使用命令行參数
在Linux下编程习惯了使用命令行參数,故使用VS2010时也尝试了一下. 新建项目,c++编敲代码例如以下: #include<iostream> #include<fstream ...
- FL2440 rt3070模块ap模式移植
---------------------------------------------------------------------------------------------------- ...
- http://blog.csdn.net/huang_xw/article/details/7090173
http://blog.csdn.net/huang_xw/article/details/7090173
- eclipse里面配置spring,提示java.lang.ClassNotFoundException:org.springframework.web.servlet.Dispatcher错误
在eclipse里面创建了一个Dynamic 项目,用到spring,一直提示java.lang.ClassNotFoundException: org.springframework.web.ser ...
- Python中lambda使用简易教程
例如: f = lambda x: x+x #lambda后的x为参数 print f(3) >>6 等价于 def func(x): return x+x print func(3) 与 ...
- CHAPTER ONE LOAD-BALANCING
1.1 Synopsis In this part, we will explain how to create a load-balancer withnginxfor a lot of OpenE ...
- 01-Hibernate Tools for Eclipse Plugins安装
Hibernate Tools for Eclipse Plugins安装 在线安装有两种方法 方法一:"Help > Install New Software Updates&quo ...
- jumpserver-v0.5.0 应用图解
一. Jumpserver启动 Python: 版本 3.6 1.1 启动Jumpserver 先进入Python虚拟环境 [root@localhost ~]# source /opt/py3/bi ...