【资料整理】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的介绍,当然也有写的比较认真的,但是自己学习过程中还是看了好多才明白,这里按照自己整理梳理一下资料,形成提纲以便学习. 介绍较 ...
随机推荐
- celery.backends.base.NotRegistered.
错误原因: 多个celery worker的任务重名.
- SIGCHLD信号
SIGCHLD的产生条件 子进程终止时 子进程接收到SIGSTOP信号停止时 子进程处在停止态,接受到SIGCONT后唤醒时 也就是说:子进程的运行状态发生变化就会发送SIGCHILD信号:这里的意思 ...
- HTML页面3秒后自动跳转的三种常见方法
在练习中,我们常常遇到一种问题就是,怎么实现页面N秒之后自动跳转呢? 我自己遇到问题和查找资料,总结了3个方法 方法1: 最简单的一种:直接在前面<head>里面添加代码: 复制代码 代 ...
- [PHP]PHP页面静态化:真静态的两种方案
---------------------------------------------------------------------------------------------- /*|-- ...
- 两台计算机有相同的IP地址会发生什么情况?两台计算机有相同的MAC地址会发生什么情况?
1 相同IP a) 同一网段内 会发生IP地址冲突.两台主机在特定情况下是可以同时使用同一个IP地址的.但是如果这两台主机在同一个网络内,大多数情况下,二者或者其中之一的连通性将会被破坏.比方 ...
- python常用字符串处理(转)
转自https://www.cnblogs.com/houht/p/3308634.html 判断字符串str是否为空 Approach 1:如果字符串长度为0,说明字符串为空,code如下: isN ...
- WINDOWS之CMD命令
用法 1.切换盘符 2.切换到指定盘符后 在使用命令 cd +路径 一般介绍DOS命令,切换工作目录都是用CD命令,但是我在win7下的DOS中使用CD D:\却一直无法转到D盘. 后来在网上查找,发 ...
- 手动安裝TMG2010所需Windows服务和功能
安装 Forefront TMG 之前,必须运行准备工具,以验证是否已在您的计算机上安装成功安装 Forefront TMG 所需的应用程序.如果在未首先运行准备工具的情况下运行 Forefront ...
- git 分支合并develop 重新拉取
1.本地包 zb-local 上传到对应的线上分支 zb-online cd 进入本地所在文件夹,然后执行下面三项 git add . git commit -m '修改' git push 或者 ...
- mongodb从入门到精通
1.mongodb官网下载文件2.安装mongodb 3.配置安装成服务 4.记得连接的时候修改连接的ip地址 5.显示当前使用的数据库名——dbs 6.查找所有数据库——show dbs 7.查找所 ...