ADO.NET基础笔记理论基础

一、ADO.NET概述:
1、ADO.NET:微软提供的一种全新的数据库访问技术,是一个在.NET FrameWork中负责数据访问的类
库集,具有良好的跨平台性和交互性。
简单来说,就是使应用程序连接到数据库并操作数据的技术。
2、ADO.NET的组成体系结构:
Data Provider:数据提供程序,用于连接数据库、执行命令、检索结果;
2.1)四种数据提供程序,连接不同数据库时,使用不同的命名空间;
SqlServer数据提供程序,命名空间为:System.Data.SqlClient
OLE 数据提供程序(Access、Excel),命名空间为:System.Data.oleDb
ODBC 数据提供程序(mysql),命名空间为:System.Data.Odbc
Oracle数据提供程序,命名空间为:System.Data.OracleClient
2.2)包含的四个核心对象:
Connection:建立与特定数据源的连接 SqlConnection
Command:对数据源执行命令 SqlCommand
DataReader:从数据源中读取只进只读的数据流 SqlDataReader
DataAdapter:使用数据源填充DataSet并支持更新
DataSet:数据集,独立于任何数据源的数据访问,类似于一个临时数据库;
3、ADO.NET访问数据库的两种方式:
断开式访问:只需要在执行数据库命令时保持数据库连接
非断开式访问:在整个操作过程中需要保持数据库连接
二、连接对象Connection
1、Connection用于和数据库创建连接,打开一条连接通道;
2、使用不同的数据库,对应的连接对象不同,SqlServer数据对应的连接对象是SqlConnection,位于
System.Data.SqlClient命名空间下;
3、SqlConnection对象常用属性:
ConnectionString:连接字符串
State:连接属性
DataSource:连接数据源名称
Database:连接数据库名称
4、SqlConnection对象常用方法:
open();打开数据库连接
close();关闭数据库连接
5、连接字符串的两种写法:
SQL Server身份验证:"server(Data Source)=服务器名;database(Initial Catalog)=数据库名;uid=用户名;
pwd=密码"
Windows 身份验 证 :"server(Data Source)= 服务器名;database(Initial Catalog)= 数 据库名;Integrated
Security=true"
//连接数据库举例 //第一步:导入命名空间 using System.Data.SqlClient;
//第二步1):创建连接对象和字符串分开书写 SqlConnection conn = new SqlConnection();
//填充连接字符串 conn.ConnectionString = "server=.;database=SMIDB;Integrated Security=true";

//第二步2):创建连接对象和字符串一起写 SqlConnection conn = new SqlConnection("server=.;database=SMIDB;Integrated Security=true");

//第三步:打开连接 conn.open(); //第四步:关闭连接 conn.close(); 12345678910111213
三、执行对象Command
1、Command对象用于执行SQL命令,对数据库中数据执行增删改查,必须保持连接打开状态;
2、使用不同的数据库,对应的执行对象不同,SqlServer数据对应的执行对象是SqlCommand,位于
System.Data.SqlClient命名空间下;
3、SqlCommand常用属性:
CommandText:获取或设置执行的SQL命令
Connection:获取或设置连接数据库的Connection对象
4、SqlCommand常用方法:
ExecuteNonQuery:增、删、改,执行T-SQL语句,并返回受影响的行数
ExecuteScalar:执行查询命令,返回结果集中的首行首列的值
ExecuteReader:执行查询命令,并返回DataReader对象
5、创建SqlCommand对象的方法:
//方法1: SqlCommand cmd=new SqlCommand(); cmd.Connection=连接对象; cmd.CommandText=SQL语句; 

//方法2: SqlCommand cmd=new SqlCommand("SQL语句"); cmd.Connection=连接对象;

//方法3: SqlCommand cmd=new SqlCommand("SQL语句",连接对象);
//方法4: SqlCommand cmd=连接对象.CreateCommand(); cmd.CommandText=SQL语句;

  

四、SqlCommand常用方法详解:
1、ExecuteNonQuery():增删改的方法,返回受影响的行数
复制代码
//增删改的方法 public void ExecuteNonQueryTest()
{
//声明连接字符串 string conStr="Data Source=.;Initial Catalog=Company;Integrated Security=True";
//声明SQL语句,可以是增加语句、删除语句、更新语句 string sql="insert into DepInfo values('综合部')";

//创建连接对象 SqlConnection conn = new SqlConnection(conStr);
//创建Command对象 SqlCommand command = new SqlCommand(sql,conn);

//打开数据库连接,先判断是否开启数据库连接 if (conn.State == ConnectionState.Closed) {
//打开数据库连接 conn.Open();

//执行ExecuteNonQuery()方法,返回受影响的行数 int i=command.ExecuteNonQuery();
//如果受影响的行数大于0,证明执行成功,否则失败; if(i>0) { Console.WriteLine("操作成功"); }else { Console.WriteLine("操作失败"); } }

//关闭连接 if(conn.State != ConnectionState.Closed) { conn.close(); } }
复制代码
五、数据读取对象DataReader
1、DataReader对象是一个只读只进的数据读取器,用于从查询结果中读取数据,每次只能读取一行数
据,在读取过程中,必须保持连接打开状态;
2、使用不同的数据库,对应的数据读取对象不同,SqlServer数据对应的执行对象是SqlDataReader,位
于System.Data.SqlClient命名空间下;
3、SqlDataReader对象常用属性:
FieldCount:获取每行数据的列数
HasRows:获取查询结果中是否存在数据,Bool类型
4、SqlDataReader对象常用方法:
Read():使SqlDataReader前进到下一条记录,如果下一条有记录,则返回true,否则返回False;
Close():关闭SqlDataReader对象;
GetName():获取指定列的名称;
5、ExecuteReader():查询数据集的方法,返回一个SqlDataReader对象
复制代码
//查询数据集的方法 public void ExecuteReaderTest() { //声明连接字符串 string conStr="Data Source=.;Initial Catalog=Company;Integrated Security=True"; //声明SQL语句,一般配合适用于聚合函数查询 string sql="select * from DepInfo"; //创建连接对象 12345678
方法 说明
int IndexOf(string
value)
获取指定的value字符串在当前字符串中第一个匹配项的索引,如果找到了
value,就返回它的索引,如果没有找到,就返回-1
int LastIndexOf(string
value)
获取指定的字符串value在当前字符串中最后一个匹配项的索引,如果找到
了value,就返回它的索引,如果没有找到,就返回-1
String Join(string
separator,string[] value)
在字符串数组value中的每个字符串用指定的分隔符sparator连接,返回连接
后的字符串
string[] Split(char
separator)
用指定的分隔符separator分割字符串,返回分割后的字符串组成的数组
string SubString(int
startIndex,int length)
从指定的位置startIndex开始检索长度伟length的子字符串
string ToLower() 获得字符串的小写形式
第三章:异常处理和DBHelper类 一、字符串介绍 1、字符串是我们在程序当中非常常用的一种类型,.NET Framework类库中有它的内置类String类集,可
以调用相关方法;
2、string和String:string是String在C#中的外号,或称为别名,在C#中它们是完全一样的;
3、字符串处理方法:
SqlConnection conn = new SqlConnection(conStr);
//创建Command对象 SqlCommand command = new SqlCommand(sql,conn);
//打开数据库连接,先判断是否开启数据库连接 if (conn.State == ConnectionState.Closed)
{

//打开数据库连接 conn.Open();
//执行ExecuteReader()方法,返回一个SqlDataReader对象,声明一个SqlDataReader对 象来接收;
SqlDataReader dr = command.ExecuteReader();
//通过Read()方法逐行读取数据,即时保存数据进行输出
while (dr.Read()) {
int i = int.Parse(dr[0].ToString()); string name = dr[1].ToString();
Console.WriteLine($"序号:{i},部门名称:{name}"); }
}

//关闭SqlDataReader对象连接 if(dr!=null){ dr.Close(); }

//关闭连接 if(conn.State != ConnectionState.Closed) { conn.Close(); } }
复制代码

 

posted @   花是花树是树  阅读(129)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示