SqlDataReader类和Parameters的Add方法

    xiaoxiao2022-07-06  212

    SqlDataReader类

    简介:提供了顺序的、只读的方式读取Command对象获得的数据结果集。因为是以顺序的方式连续地读取数据,所以DataReader会以独占的方式打开数据库连接 因为只是读操作,每次只在内存缓冲区里存储结果集的一条数据,所以效率比较高,如果查询大量数据,而且不需要同时修改,用这个比较好

    常用属性

    ① FieldCount:表示记录有多少字段

    ② HasRows:表示DataReader是否包含数据

    ③ IsClosed:表示的DataReader是否关闭

    常用方法

    ① IsNull:判断字段内是否为Null值 ② Reader():其返回类型为bool,将数据阅读器移到结果集的下一行并读取该行。这个方法返回的布尔值表示结果集中是否有多行 上面所涉及到的例子:

    while (reader.Read())//当数据表里面有数据的时候

    ③ GetValue(): 其返回类型为object, 返回指定列的值

    ④ GetValues(): 其返回类型为int,将当前行中所有列的值复制到指定对象数组。这个方法返回的int是数组元素的个数

    ⑤ NextResult():其返回类型为bool,将数据阅读器移到结果集的下一行。这个方法返回的布尔值表示结果集中是否有多行

    ⑥ Close():关闭 SqlDataReader 对象

    ⑦ GetOrdinal:取得指定字段名称在记录中的顺序

    ⑧ GetInt32(),GetChar(), GateDataTime(),Get×××():返回指定列的值,并且返回的类型为相应的数据类型。例如GetInt32()返回整型的数值。 注意,如果你将返回值赋予一个类型不匹配的变量时,将会抛出一个InvalidCastException异常 上面所涉及到的例子:

    user.ID = reader.GetInt32(0);//get**(a)——**表示返回指定值的类型,a表示返回值的列数

    Parameters的Add方法传参问题

    第一种——直接写入法

    int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')";

    Id是数值在sql中用"+id+“实现,Name是字符串所以传递的时候需要在”+Name+"两边再各加一个单引号实现

    第二种——给命令对象添加参数法:

    int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values(@Id,@Name)";

    直接在sql语句中写添加的参数名,不管参数的类型都是这样,之后在给参数赋值

    cmd.Parameters.Add(new SqlParameter("@Id", Id)); cmd.Parameters.Add(new SqlParameter("@Name", NAME));

    SqlParameter对象:就是将要用于操作库的数据以参数的形式加入到sql语句当中,防止因为拼接字符串而引起的安全问题并且提高可读性。

    所以使用第二种方法,执行SQL语句操作前,要做两步工作:

    ① 创建一个SqlParameter对象,在定义时或定义后将数据绑定到SQL的参数上面

    ② 使用SQLcommand.Parameterde的Add方法(针对于单个的对象)或AddRange方法(SQLparameter数组)将SQLparameter对象添加到字符串中即可执行

    最新回复(0)