经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » MS SQL Server » 查看文章
数据库底层—访问操作
来源:cnblogs  作者:TM分寸  时间:2018/11/1 9:28:18  对本文有异议

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号