ADO.NET数据访问方式:SqlDataReader

  • 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键代码缩进

posted on 2011-09-18 18:03  les_vies  阅读(281)  评论(0编辑  收藏  举报

导航