欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库底层—访问操作

程序员文章站 2022-06-24 15:33:12
数据访问代码是最底层的代码,Linq也是基于基本的数据库查询的基础上进行编写,EF框架也是,所以了解底层代码对我们开发有一个很客观的帮助,如果哪天没有网,没有框架一样可以进行开发数据访问,接下来就介绍几种方法。 第一个是数据阅读器:简单的了解一下什么是数据阅读器,通俗的说 数据阅读器是 只读 只取 ......

        数据访问代码是最底层的代码,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;