• SqlDataReader读取数据方法的封装: SqlHelper.ExecuteRead(string sql,params SqlParameter[] a,…)

class SqlHelper

{

  SqlDataReader SqlDataReader ExecuteRead(string s,params SqlParameter[] ps)

  {

    string str = Configuration.ConnectionStrings[“str”].ConnectionString

    using(SqlConnection conn = new SqlConnection(connStr))

    {

      using(SqlCommand cmd = conn.CreateCommand())

      {

        cmd.CommandText = sql;

        foreach(SqlParaneter param in parameters)

        {

          cmd.Parameters.Add(param);

        }

        return cmd.ExucuteReader();

      }

    }

  }

}

  • SqlCommand(System.Data.SqlClient名称空间)
  1. SqlCommand表示向服务器提交的一个命令(SQL语句等)
  2. .CommandText属性为要执行的SQL语句
  3. .ExecuteNonQuery()方法执行一个非查询语句(update/insert/delete等)/返回值为执行的影响行数

using(SqlCommand cmd = conn.CreateCommand())

{

  cmd.CommandText = “insert t_users(username,password)values(‘admin’,’888888’)”;

  cmd.ExecuteNonQuery();

}

  1. .ExecuteReader()方法: 将.CommandText发送到.Connection(SqlConnection类实例)并生成一个SqlDataReader
  2. .ExecuteScalar()方法用于执行查询(返回结果集第一行第一列数据)/返回值object类型

例: 获得自动增长字段主键值(() output inserted.*(主键值) values())
using(SqlCommand cmd = conn.CreateCommand())
{
  cmd.CommandText = “insert t_users(name,age) output inserted.id values(‘lily’,21)”;
  cmd.ExecuteScalar();
}

  • SqlDataReader
  1. SqlDataReader: 提供一种从 SQL Server 数据库读取行的只进流的方式/该类不能被继承
  2. .Read()方法: 使SqlDataReader前进到下一条记录/返回布尔值
  3. .GetOrdinal()方法: 在给定列名称的情况下获取列序号
  4. .GetString()方法: 获取指定列的字符串形式的值/列序号从0开始

例: ①按照用户提供的用户名/密码插入数据库 ②用户名登陆练习 ③输出数据库数据条目数 ④输出员工表姓名列abcdefghijk…

  • 注入漏洞与参数化查询
  1. SqlCommand.Parameters: SqlParameterCollection类/表示与SqlCommand相关联的参数的集合
  2. SqlParameter: 表示SqlCommand的参数

例: 注入漏洞与参数化查询

cmd.CommandText = "select count(*) from t_employee where   name=@userName and password=@passWord+";

cmd.Parameters.Add(new SqlParameter("userName",userName));

cmd.Parameters.Add(new SqlParameter(“passWord”,passWord));

  • 案例
  1. 例: 用户界面进行登陆判断 输错三次禁止登陆 用数据库记录ErrorTimes
  2. 连接字符串写到配置文件中
  3. 例: 文件导入导出
  4. 数据导入: 从文本文件导入用户信息
  5. 数据导出: 将用户信息导出到文本文件
  6. tab键代码缩进

转载于:https://www.cnblogs.com/lesvies/archive/2011/09/18/2180538.html

ADO.NET数据访问方式:SqlDataReader相关推荐

  1. Spring.NET 中的 ADO.NET 数据访问的示例

    Spring.NET 1.3.1 中提供了一个使用 AdoTemplate 的完整示例,包括使用泛型和使用非泛型技术进行数据访问,这个示例位于下载的压缩包中\Spring.NET-1.3.1\Spri ...

  2. ADO.net数据访问

    需要引用对应命名空间:System.Data.SqlClient; SqlConnection:连接对象 SqlCommand:命令对象 SqlDataReader:读取器对象 //造连接字符串 st ...

  3. VB.NET学习笔记:ADO.NET操作ACCESS数据库——ADO.NET数据访问接口

    一.ADO.NET概述 Ado.net基于XML和离线计算模型. ADO.net的两个核心组件:.Net数据提供程序.DataSet. .net数据提供程序用来与数据库的连接,如SQLServer.n ...

  4. ADO.NET数据访问模板整理

    1 /// <summary> 2 /// 数据访问类:hi_test 3 /// </summary> 4 public partial class TestDA 5 { 6 ...

  5. .NET 数据访问架构指南(转)

    Alex Mackman, Chris Brooks, Steve Busby, 和 Ed Jezierski 微软公司 2001年10月 概述:本文提供了在多层.NET应用程序中实施基于ADO.NE ...

  6. [转自microsoft]NET 数据访问架构指南,-数据库连接的测试.即监视链接池化

    NET 数据访问架构指南 Alex Mackman, Chris Brooks, Steve Busby, 和 Ed Jezierski 微软公司 2001年10月 概述:本文提供了在多层.NET应用 ...

  7. .NET 数据访问架构指南

    Alex Mackman, Chris Brooks, Steve Busby, 和 Ed Jezierski 微软公司 2001年10月 概述:本文提供了在多层.NET应用程序中实施基于ADO.NE ...

  8. [转].NET 数据访问架构指南

    Microsoft   目录 ADO.NET简介 管理数据库链接 错误处理 性能 通过防火墙建立链接 处理 BLOBs 事务处理 数据分页 简介 如果你在为.NET应用程序设计数据访问层,那么就应该把 ...

  9. NET 数据访问架构指南

     发布者:[本站编辑]  来源:[]  浏览:[<script src="../../ArticleInfo.asp?action=viewtotal&ArticleId=82 ...

  10. ClownFish:比手写代码还快的通用数据访问层

    最近花了二个月的业余时间重写了我以前的通用数据访问层, 由于是重写,所以我给这个项目取了个新名字:ClownFish 如果需要了解ClownFish的使用方法,请点击ClownFish 使用说明 Cl ...

最新文章

  1. MYSQL explain详解[转载]
  2. 小蚂蚁学习mysql性能优化(4)--SQL以及索引优化--具体一些优化方法
  3. 使用PHP搞定支付宝、微信扫码支付
  4. 【SVM】A Practical Guide to Support Vector Classication
  5. IntelliJ IDEA的使用操作链接
  6. Java的getcelltype用法_java getCellType的替代方法
  7. 均值滤波器类型_均值滤波适用于处理什么样的噪声
  8. 2019/3/14 软工作业
  9. Python保留两位小数,并做四舍五入处理
  10. 腾讯实习生招聘失败经历分享
  11. python编写直角三角形边长公式_python 打印直角三角形,等边三角形,菱形,正方形的代码...
  12. 俄勒冈大学计算机科学专业,美国俄勒冈大学计算机与信息科学博士后
  13. 微信小程序获取二维码scene报错40129
  14. 小程序全局拖动悬浮球插件
  15. 集线器,路由器,交换机之间的区别
  16. 【JAVA】学习java 基础知识
  17. NAND Flash SSD 是如何生产出来的?
  18. 钉钉为什么被并入阿里云?
  19. CiteSpace系列——如何去掉图中文字的底纹?
  20. 解决华为SecoClient在win10,win11环境下显示返回状态码超时问题

热门文章

  1. 【线段树入门题目集】
  2. c语言串口接收的字符转int,从串口发送和接收int值
  3. mac sublime text 3 列操作,替换相同内容, 用动态输入的方式
  4. NumPy库---数组的基本操作
  5. el图oracle,element-ui之el-image-viewer(图片查看器)
  6. mysql乐观锁和悲观锁的区别_mysql悲观锁和乐观锁的区别
  7. swoole 连接mysql_Swoole 优雅的实现 MySQL 连接池
  8. centos7下安装pycharm
  9. CSDN-markdown编辑器语法说明
  10. JAVA日常优化---Guava缓存玩耍异步刷新