数据库底层—访问操作
数据访问代码是最底层的代码,linq也是基于基本的数据库查询的基础上进行编写,ef框架也是,所以了解底层代码对我们开发有一个很客观的帮助,如果哪天没有网,没有框架一样可以进行开发数据访问,接下来就介绍几种方法。
第一个是数据阅读器:简单的了解一下什么是数据阅读器,通俗的说 数据阅读器是 只读 只取 的一个操作,返回的结果如果读到数据就返回true 如果没有访问到数据就返回 false,通过read()的方法进行读取。简单介绍一下代码
/// <summary>
/// 数据阅读器
/// </summary>
/// <param name="constr">连接数据库字符串</param>
/// <param name="cmdstr">操作数据库命令</param>
/// <param name="type">命令字符类型</param>
/// <param name="ps">参数</param>
/// <returns>返回阅读到的数据</returns>
public static sqldatareader executereader(string constr, string cmdstr, commandtype type, params sqlparameter[] ps)
{
//通过方法里传过来的 constr 数据库连接字符串 连接对应的数据库
sqlconnection conn = new sqlconnection(constr);
//做完连接下一步就是: 打开数据库连接
conn.open();
//数据库操作命令两个参数代表 cmdstr是commandstring的简写,意思就是操作数据库命令字符串,
//conn就是我们的连接数据库的操作,表示要连接哪个数据库
sqlcommand cmd = new sqlcommand(cmdstr, conn);
//声明一下操作数据库的类型是什么,这里可是是text 形式,也可以是 存储过程 类型
cmd.commandtype = type;
//判断一下有没有参数,如果参数就给添加
if (ps.length > 0)
{
cmd.parameters.addrange(ps);
}
//数据库的操作状态,因为datareader是连接式访问数据库,所以必须全程打开数据库连接
//连接状态等查询完成之后在关闭
sqldatareader dr = cmd.executereader(commandbehavior.closeconnection);
//返回查询 dr 的结果
return dr;
}
还有一种断开式访问操作就是我们数据库里的dataset数据集 代码如下:
/// <summary>
/// 数据集
/// </summary>
/// <param name="constr">连接数据库字符串</param>
/// <param name="cmdstr">操作数据库命令</param>
/// <param name="type">命令字符类型</param>
/// <param name="ps">参数</param>
/// <returns>临时表集合</returns>
public static dataset executedataset(string constr, string cmdstr,commandtype type, params sqlparameter[] ps)
{
sqlconnection conn = new sqlconnection(constr);
//跟上面不同的就是这里不是在是连接命名
//用数据适配器是适配 最后的作用就是填充数据集
sqldataadapter sda = new sqldataadapter(cmdstr, conn);
sda.selectcommand.commandtype=type;
if (ps.length > 0)
{
sda.selectcommand.parameters.addrange(ps);
}
//前面的跟上面的注释差不多所以就不一个个去写了
//不一样的就是返回类型 和 细节操作,
//创建一个空的数据集
dataset ds = new dataset();
//然后用数据适配器是填充一下数据集
sda.fill(ds);
//最后返回 ds 数据集合
return ds;
}
声明一下如果在cs文件中去写数据访问代码需要加入命名空间 using system.data 和 using system.data..sqlclient;
上一篇: 正则表达式解析