1、SQL执行过程
-> SQL查询的完整语法
select top | distinct
字段
, 表达式
, 函数
, 标量子查询
, ...
from
数据源
where
条件(一般逻辑、范围、模糊、空值)
group by
字段
having
条件
order by
排序字段
2、 ADO.NET
-> ADO.NET是什么
就是一堆用于C#连接操作数据库的类库
-> 相关命名空间(SQL Server)
System.Data; // 用于数据类型等信息的描述
System.Data.SqlClient; // 存储sql server操作的类库
-> 微软统一
Connection 链接数据库
Command 存储sql语句的对象,发送执行等操作使用这个类
DataReader 读取大量数据的时候获得每一行数据的对象
DataAdapter
-> System.Data.Common
DbConnection
DbCommand
DbDataReader
DbDataAdapter
3、 使用ADO.Net连接数据库
-> 需要:数据服务的名称、数据库、用户名、密码
-> server:.;database=myFirstDB;uid=sa;pwd=123456(别名的写法)
4、 使用ADO.NET操作数据库的四个模型
-> ExecuteNonQuery模型,执行非查询语句,增、删、改,返回受影响行数;如果执行其他返回-1
-> ExecuteScalar模型,执行查询语句,返回查询结果中的第一行第一列的数据
一般使用查询聚合函数,获得聚合函数的结果
例,查询满足要求的数据总条数等
-> ExecuteReader模型,读取查询出来的所有结果
-> SqlDataAdpater模型,是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据
5、 注入漏洞攻击
->在ADO.NET的时代,解决注入漏洞,使用参数化编程
exec -- 存储过程 execute sp -> stored procedure
sp_executesql
N'select count(*) from LoginTbl where uid=@uid and pwd=@pwd;'
,N'@uid nvarchar(2),@pwd nvarchar(12)'
,@uid=N'张三'
,@pwd=N'1'' or ''1''=''1'
go
6、连接池(Connection Pool)
->当连接数据库对象调用close()方法的时候没有真正的回收销毁这个对象,
而是将它放到连接池中,当下次需要连接数据库时,直接从连接池里面取,从而提高性能
7、 配置文件
-> 为什么要用
-> vs中如何使用xml的配置文件
1 (vs12一下的版本)添加配置文件
选中项目->右键添加项->应用程序配置文件(App.config)
2 在配置文件中添加节点(App.config是一个XML文件)
<connectionStrings></connectionStrings>
3 添加连接字符串
在connectionStrings节点中添加add节点,节点的name属性表示引用名字
connectionString属性表示这个引用名字表示的连接字符串
<add name="sql" connectionString="server=.;...." />
4 引用程序集
选中引用节点->右键添加引用->程序集中找到System.Configuration->添加
5 获得连接字符串
使用类库的静态方法
string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
ado.net(一)
最新推荐文章于 2019-09-02 00:02:18 发布