【资料整理】ADO.NET
ADO.NET:
1.SYSTEM.DATA 命名空间下类的集合的统称,用于操作 连接数据库的 它提供了统一的编程接口,可以操作不同的数据库
数据库实例:默认实例(MSSQLSEVER)和命名实例(MYSQLSERVER)如果不写实例名称就会去连接默认实例,如果要连接命名实例,就必须写上命名实例的名称 用于区分同一台电脑上的不同数据库软件
端口:每一种对外提供的服务都提供端口web:80 sqlserver:1433
Server=127.0.0.1 本机
Connection 连接通道
a.目的
b.账户密码
c.门牌号
string connSTR="Server=127.0.0.1;DaTaBaSe=ItCast;Uid=sa;Pwd=12345"
string connSTR="Server=.;DaTaBaSe=ItCast;Uid=sa;Pwd=12345"
//SqlConnectionStringBuilder scsb=new SqlConnectionStringBuilder ();
//scsb.DataSource=".";//指定服务器地址
//scsb.IntegratedSecurity=true;//使用windows身份验证
//scsb.InitialCatalog="Itcast";//指定要连接的数据库
string connStr="Data Source=.;Initial catalog=数据库名;integrated Security=true";
1)创建一个连接通道
SqlConnection conn=new SqlConnectin ();
//指定连接通道的连接字符串
conn.ConnectionString=connStr;//System.Data.SqlClient命名空间下
2)准备命令语句其实就是在数据库字段执行的sql命令
string sql="insert into class values(‘’,'')";
3)创建1个命令对象 用来执行命令
SqlCommand cmd=new SqlCommand ();
cmd.CommandText=sal;//指定对象的执行的sql命令
cmd.Connection=conn;//指定对象的连接通道
//执行非查询的语句 增删改
conn.Open();
int res=cmd.ExecueNonQuery();
(不管是什么语句此处也可以使用cmd.ExecuteScalar()也是可以在数据库执行的,ExecuteNonQuery()方法可以返回执行完命令后受影响的行数,ExecuteScalar()返回的是结果集的首行首页,如果是空的结果集返回的是null)
//判断返回的行数用来判断执行是否成功
if(res>0)
{
mbox("执行成功");
}
else
{
mbox("执行失败");
}
conn.Close();
Connection:
Connection应用程序与数据库之间的连接通道
SqlConnection连接通道会默认情况下使用连接池,连接池的作用就是当需要创建1个连接通道的时候会去这个连接池里面根据连接字符串找是不是有相同的连接对象,如果有则直接返回不会再去重新创建对象 如果没有则创建对象返回 当使用完这个对象后 会放回连接池
conn.State State 用来表示连接通道的状态
State.Close 相当于设置1个路障
conn.Dispose() 不是真正的释放资源,内部调用了close(),并清空了ConnectionString,其实是将对象放到连接池中,等到再次调用时就不用另外新建一个对象
连接其他服务器:1.关闭防火墙 2.TCP,IP协议要开启 3.代理服务要开启
连接字符串的语法如果错误,则在创建连接通道的时候就会报错,若语法没错而属性值错误,则在open时报异常
conn.StateChange事件,在连接通道的状态发生改变的时候被触发
清空连接池: SqlConnection.ClearAllPools();清空连接池里的所有的连接对象
SqlConnection.ClearPool(conn);清空指定的连接对象
一般情况下读建议使用连接池
Command:
1)步骤
1.创建连接通道
2.准备SQL语句 若有多行命令用;隔开
3.创建命令对象
两种创建方式:SqlCommand cmd=new SqlCommand(sql,conn);
SqlCommand cmd=conn.CreatCommand();
4.指定这个命令对象要执行的sql命令和连接通道
5.打开连接
6.执行非查询的语句命令 增删改 返回的是执行完这个命令后受影响的行数
(凡是遇到关键字"FROM"附近有语法错误的都是SQL语句写错了)
7.判断结果
8.关闭通道
2)事件
StatementCompleted事件是每执行完1条语句就触发一次 e.RecordCount 用来返回完成的语句受影响的行数
3)ExecuteScalar()
用来返回结果集的第1行的第1列,如果结果集是空的,那么返回的就是null
object obj=cmd.ExecuteScalar();
ExectueReader方法:
由cmd调用 返回1个SqlDataReader对象 摩托车
SqlDataReader reader=cmd.ExecuteReader();//cmd.ExecuteReader()执行了查询语句,只不过这个查询语句返回的结果集是存在数据库服务端的
while(reader.Read()) //reader.Read()返回布尔类型
{
Console.WriteLine(reader[这里可以传入int类型或者列名别名])//reader[]索引器里面的int string都是针对结果集,如果结果集没有则报错,每调用一次方法指针向后移一位,然后尝试读取数据,如果有数据就返回TRUE,并将当前行的数据封装在reader对象中,通过索引器的方式访问,如果没有读取到数据则返回false
int i=reader.GetOrdinal("id")可以取得id列的下标针对结果集的比较少用
DateTime dt= Convert.ToDateTime(reader["AddTime"]);将结果集的结果转换为指定类型
reader.GetInt32() 更快捷的将指定列转换为指定类型各种Get方法
}
SqlDataReader 是一个在线读取的功能,读完前不能关闭通道,是1个只进的读取器,逐行只进读取,如果遇到null(数据库中的null为不知道)那么打印空字符串
BindingSource bs=new BindingSource (); 声明BindingSource 对象
bs.DataSource=reader; 设置bs对象的数据源属性
dgvData.DataSource=bs;再将BS对象赋给dgvData的DataSource属性
reader.Close();//读取器也是要关闭的,而且是在连接通道关闭之前关闭
conn.close();
多个reader的方法
reader.NextResult();//读取下个结果集
while(reader.Read())
{
cw("reader["列名"]");
}
【资料整理】ADO.NET的更多相关文章
- iOS 开发学习资料整理(持续更新)
“如果说我看得比别人远些,那是因为我站在巨人们的肩膀上.” ---牛顿 iOS及Mac开源项目和学习资料[超级全面] http://www.kancloud.cn/digest/ios-mac ...
- zz 圣诞丨太阁所有的免费算法视频资料整理
首发于 太阁实验室 关注专栏 写文章 圣诞丨太阁所有的免费算法视频资料整理 Ray Cao· 12 小时前 感谢大家一年以来对太阁实验室的支持,我们特地整理了在过去一年中我们所有的原创算法 ...
- iOS 学习资料整理
iOS学习资料整理 https://github.com/NunchakusHuang/trip-to-iOS 很好的个人博客 http://www.cnblogs.com/ygm900/ 开发笔记 ...
- H.264的一些资料整理
本文转载自 http://blog.csdn.net/ljzcom/article/details/7258978, 如有需要,请移步查看. Technorati 标签: H.264 资料整理 --- ...
- 转:基于IOS上MDM技术相关资料整理及汇总
一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...
- 3分钟带你了解PowerShell发展历程——PowerShell各版本资料整理
本文带你了解PowerShell发展历程,顺便整理了一点资料,方便大家查询. Windows PowerShell® 是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计. 在 .NET Fr ...
- (转载)2016 CCF大数据与计算智能大赛 开源资料整理
本文转载自:http://blog.sina.com.cn/s/blog_5399b8660102wxks.html 2016 CCF 大数据与计算智能大赛已经落下帷幕,11个赛题由众多大神包揽奖项, ...
- Java 学习资料整理
Java 学习资料整理 Java 精品学习视频教程下载汇总 Java视频教程 孙鑫Java无难事 (全12CD) Java视频教程 即学即会java 上海交大 Java初级编程基础 共25讲下载 av ...
- Niagara帮助文档资料整理
1.任何软件额发布都会有说明文档,有的不会附具体实践的操作步骤,存在不懂得问题一般可以通过查看榜文文档解决问题 一些软件的帮助文档是一PDF格式存储在软件安装的目录下面,如Niagar workben ...
- 对word2vec的理解及资料整理
对word2vec的理解及资料整理 无他,在网上看到好多对word2vec的介绍,当然也有写的比较认真的,但是自己学习过程中还是看了好多才明白,这里按照自己整理梳理一下资料,形成提纲以便学习. 介绍较 ...
随机推荐
- package-info.java
参考文章: http://blog.sina.com.cn/s/blog_93dc666c0101gzlr.html 对于package-info.java我们并不陌生,但又陌生. 在我们每次建立pa ...
- ABAP-计算器-动态表达式
data:lv_value type string. call function 'EVAL_FORMULA' exporting formula = '90 <= 90' program = ...
- jquery下插入标签以及clone的应用
//内部插入 插入一个儿子 //var $ele = $("<h1></h1>")//创建h1标签 // $ele.html('hello') // $el ...
- 一例对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性的解决
这个问题相信只要是做MVC的,都碰到过,也都知道错误的原因,就是触发了定义的实例字段校验规则.比如定义的不为空,但是为空了,或者定义的字段长度为50,但是超过50了. 可是有时虽然知道是这样,但是具体 ...
- Maven仓库—Nexus环境搭建及使用
使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包 http://blog.csdn.net/yanjun008/article/details/42084109 Nexus介 ...
- HTML 样式兼容不同设备类型
在项目中遇到在屏幕上显示的效果和打印时显示的效果不同,可以使用media属性来指定用于不同的媒介时使用的样式. media属性值: 值 描述 screen 计算机屏幕显示(默认) tty 电传打字机以 ...
- Linux下GDB调试简单示例
这里介绍对文件first.c的基本GDB调试操作,只有部分命令,只是一个示例,运行环境为装有gcc编译器和gdb调试器的Linux环境,基本GDB调试命令如下表: 命令 ...
- 阿里支付宝java接口
网上关于Java支付宝接口的文章很多,都大同小异,但是具体到代码中,还是不太一样,对于以前没有调试的新手来说还是很费解的,这是通过调试认为比较有用的版本,贴在这里供大家参考. 1.从本站提交到支付宝: ...
- jQuery中事情的动态绑定
在jQuery的开发过程中,我们往往需要处理各种事件,例如click(),hover()等.在jQuery的API中,我们可以使用不同的方法来将这些事件绑定到特定的元素中.今天这篇文章中,我们将要介绍 ...
- 14.连接池.md
目录 连接池定义 常用开源连接池: DBCP: C3P0 连接池定义 使用统一的规范:javax.sql.DataSource实现统一编程 常用开源连接池: DBCP:tomcat C3P0:hibe ...