SqlDataReader 类

本文介绍了SqlDataReader对象的特点,包括其只向前、只读的特性,以及如何实例化和使用该对象来读取SQL Server返回的结果集。此外还讨论了使用过程中需要注意的事项,并提供了一个具体的C#代码示例。

SqlDataReader对象的特点

SqlDataReader的属性

使用SqlDataReader对象时注意点

实例

SqlDataReader类实现只向前、只读的游标样式模型,读取并遍历SQL Server返回的结果集。创建 SqlDataReader对象必须用 SqlCommand 对象的 ExecuteReader 方法来实例化SqlDataReader

如: SqlDataReader rdr = cmd.ExecuteReader();//来实例化SqlDataReader

1SqlDataReader对象的特点

1SqlDataReader对象只能向前读取数据。也就是只能往下读知道读完,而不能回头读取先前的记录。

2SqlDataReader对象是只读的,不能对其中的结果集进行修改或删除。

3SqlDataReader对象只能直接将结果集传递给显示对象,而不能在IIS的内容中保持数据。

4SqlDataReader通过Boolean方法Read逐条访问记录,Read返回false则不再有数据读取。

2SqlDataReader的属性

 

3、使用SqlDataReader对象时注意点

1)当使用完SqlDataReader对象时应立即调用close()方法将其关闭。(因为在未关闭之前,与SqlDataReader对象关联的 SqlConnection 一直为其服务,对 SqlConnection 无法执行任何其他操作)。

2)当创建多个SqlDataReader对象时必须每个对象创建一个SqlConnection 连接对象。(因为一个SqlConnection 连接对象只能被一个SqlDataReader对象使用)。

3)如果实例化SqlDataReader对象的是存储过程的返回值或输出参数时,须调用SqlDataReaderClose()方法后才能准确的获得存储过程的返回值或者输出参数。

4)如果要在SqlDataReader对象中的数据未读取完之前关闭SqlDataReader对象,则应Command对象的Cancel()方法,然后再关闭SqlDataReader对象。

5)读取SqlDataReader对象时尽量使用和数据库字段类型匹配的方法,以减少类型转换。

4、实例

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlClient;

 

namespace sqlconnection1

{

    class Program

    {

        private void SQLConnectionF(string source, string select)

        {

            SqlConnection con = new SqlConnection(source);

            try

            {

                con.Open();

                Console.WriteLine("connection is successful!");

            }

            catch (Exception e)

            {

                Console.WriteLine("connection error is :{0}", e.ToString());

 

            }

            SqlCommand sqlcmd = new SqlCommand(select, con);

            SqlDataReader reader = sqlcmd.ExecuteReader();

 

            while (reader.Read())

            {

                Console.WriteLine("name:{0,-20} number{1,-10} low:{2,-10} high:{3}", reader[0], reader[1],reader[2],reader[3]);

            }

 

            Console.ReadLine();

            con.Close();

        }

        static void Main(string[] args)

        {

            string sou = "server=duanyf//SQLEXPRESS;" + "Initial Catalog=master;" + "UID = sa;"+"Password = dyf123";

            string sel = "SELECT name,number,low,high From dbo.spt_values";

            Program sqlcon = new Program();

            sqlcon.SQLConnectionF( sou,sel);

 

          

          

        }

    }

}


 

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值