Ado.NET基础必备
一、SqlConnection对象
第一次需要连接数据库时要和服务器握手,解析连接字符串,授权,约束的检查等等操作,而物理连接建立后,这些操作就不会去做了(默认使用了连接池技术)。
SqlConnection conn = new SqlConnection(connStr)
小技巧:测试数据库是否能被成功链接,可以新建一个xxx.UDL文件,打开后输入实例名和密码,即可测试。
二 、SqlCommand对象
2.1 SqlCommand常用属性
① CommandText 属性
T-SQL语句或者存储过程的名字。
② CommandType属性
表示CommandText属性种类。
常用值:Text(默认值,CommandText为T-SQL语句)
StoredProcedure (CommandText为存储过程的名字)
③ Parameters属性
是一个SqlParameterCollection对象,存储用到的SqlParameter。
常用方法:SqlCommand.Parameters.Add(p);添加一个参数,p为一个SqlParameter对象
SqlCommand.Parameters.Add(ps);添加一个参数,ps为一个SqlParameter数组
2.2 SqlCommand的三种execute方法
① SqlCommand.ExecuteNonQuery 方法
使用场景:update,insert,delete
返回值:受影响的行数,不是上边三种情况或者回滚时返回-1。
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。如果正在执行插入或更新操作的表上存在触发器,则返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。
② SqlCommand. ExecuteScalar 方法
使用场景:select
返回值:查询结果集的首行首列值,类型为object。结果集为空时返回null。
③ SqlCommand.ExecuteReader 方法
特点:在线的,读取过程必须和数据库保持连接
使用场景:select
返回值:SqlDataReader对象
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand com = new SqlCommand("select * from userinfo where id<@id", conn))
{
conn.Open();
SqlParameter par = new SqlParameter("@id", System.Data.SqlDbType.Int) { Value = };
com.Parameters.Add(par);
SqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["username"]);//数据库中列名
Console.WriteLine(reader[]);//1为索引
Console.WriteLine(reader.GetValue());//1为索引
}
reader.Close();//释放资源
Console.ReadKey();
}
}
三、SqlDataAdapter对象
特点:离线方式,读取整个结果集保存在内存,不需要一直连接数据库(自动打开和关闭数据库连接)
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlDataAdapter adpter = new SqlDataAdapter("select * from userinfo", conn);
DataTable dt = new DataTable();
//SqlDataAdapter内部获取数据是通过调用SqlDataReader来实现的
//执行Fill方法时,它会打开到数据库的SqlConnection, 创建或使用一个SqlCommand,使用SqlCommand.ExecuteReader()方法
//通过SqlDataReader从数据库读取数据, 结束行的读取之后, SqlDataReader和SqlConnection会被关闭.
adpter.Fill(dt);
for (int i = ; i < dt.Rows.Count; i++)
{
Console.WriteLine(dt.Rows[i]["username"]);
}
Console.ReadKey();
}
Ado.NET基础必备的更多相关文章
- ADO.NET基础必备之SqlCommand.Execute三方法
SqlCommand.ExecuteNonQuery 方法 对连接执行 Transact-SQL 语句并返回受影响的行数. ――语法: public override int ExecuteNon ...
- ADO.NET基础03
数据库和VS的连接,实现数据的同步,让用户的一切信息都可以在数据库中留下记录. ADO.NET基础 它是连接所有数据库的一种特殊的技术,提供对不同的数据库统一操作接口. 在VS中也可以添加数 ...
- .Net Core 系列:2、ADO.Net 基础
目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...
- 有关ADO.NET基础中的基础的熟悉过程
现在对于ADO.NET基础的理解与记忆并不严谨和完善 所以,只写一点关于自己的理解,嗯,一种去转换思维理解的方法吧,算是吧 希望各位前辈或者同学,积极指出其中的错误和偏差 个人对于刚接触的ADO.NE ...
- 如鹏网学习笔记(六)ADO.Net基础
ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/exec ...
- Linq基础必备
1.linq基础必备之对象初始化器和匿名类型因果分析 3. 一:对象初始化器 1.就是在new的时候给公共属性赋值的一种方式 2. 在没有初始化器之前的时候,我们是怎么初始化的呢??? 1. 构造 ...
- ADO.NET基础开发
ADO.NET是微软新一代.NET数据库的访问架构,ADO是ActiveX Data Objects的缩写.ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供了一个面向对象的数据访问架构, ...
- python 之 Django框架(服务器程序和应用程序、基础必备三件套及相关配置)
第十二章 Django框架 12.1 服务器程序和应用程序 服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发, ...
- ADO.NET基础巩固-----连接类和非连接类
最近的一段时间自己的状态还是不错的,早上,跑步,上自习看书,下午宿舍里面编程实战,晚上要么练习代码,要么去打球(在不打就没机会了),生活还是挺丰富的. 关于C#的基础回顾就先到前面哪里,这 ...
随机推荐
- 【BZOJ3992】【SDOI2015】序列统计 原根 NTT
题目大意 有一个集合\(s\),里面的每个数都\(\geq0\)且\(<m\). 问有多少个长度为\(n\)的数列满足这个数列所有数的乘积模\(m\)为\(x\).答案模\(1004535809 ...
- Python的快排应有的样子
快排算法 简单来说就是定一个位置然后,然后把比它小的数放左边,比他大的数放右边,这显然是一个递归的定义,根据这个思路很容易可以写出快排的代码 快排是我学ACM路上第一个让我记住的代码,印象很深 ...
- 24 Zabbix系统配置日志监控告警--关键字触发
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 24 Zabbix系统配置日志监控告警--关键字触发 trapper是被监控主机主动发送数据给za ...
- GCD HDU - 1695(容斥原理)
要求从满足gcd(x, y) = k的对数,其中x属于[1, n], y属于[1, m] gcd(x, y) = k ==>gcd(x/k, y/k) =1 x/k属于[1, n/k], y/k ...
- bzoj4383(拓扑排序)
给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],...,a[r-1],a[ ...
- jquery $().each,$.each的区别
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法. 两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点. 一,$().each $().ea ...
- poj3630 Phone List
spy on一下,发现是trie裸题,结果一交就T... 然后把cin改成scanf就A了... trie的空间一定要开足,要不然RE #include <cstdio> #include ...
- hdu5306 Explosion
题目链接 题意 有n个房间,每个房间里面有若干把钥匙,每把钥匙可以打开对应的一扇门.如果手中没有钥匙,就要随机轰炸一个房间来打开这个房间.如果有钥匙,就要去打开这些房间.问期望轰炸次数是多少. 思路 ...
- Session 常见操作
对于敏感.重要的信息,建议要存储在服务器端(Session是存储在服务器端的),不能存储在浏览器中,如用户名.余额.等级.验证码等信息 Session依赖于Cookie session数据的获取 se ...
- Hibernate4
内容简介:1.使用log4j的日志存储,2.一对一关系,3.二级缓存 1 整合log4j(了解) l slf4j 核心jar : slf4j-api-1.6.1.jar .slf4j是 ...