Home > Database > Mysql Tutorial > body text

ADO.NET之8-数据读取器,DataReader---ShinePans

WBOY
Release: 2016-06-07 15:59:21
Original
1340 people have browsed it

根据数据提供程序不同,DataReader可分为SqlDataReader,OleDbDataReader,OlbeDataReader和OracleDataReader等4大类 一个巧妙的比喻:如果数据库是水库,那么SqlConnection是进水头,SqlCommand是抽水机,SqlDataReader是出水的水管,SqlDataReader每次只能读取一条

根据数据提供程序不同,DataReader可分为SqlDataReader,OleDbDataReader,OlbeDataReader和OracleDataReader等4大类

一个巧妙的比喻:如果数据库是水库,那么SqlConnection是进水笼头,SqlCommand是抽水机,SqlDataReader是出水的水管,SqlDataReader每次只能读取一条记录,每当SqlDataReader调用Read方法就会从数据库得到一条记录,同时Read方法会返回False值,可以使用Wihle循环来调用SqlDataReader的Read方法,读取数据库中的记录,SqlDataReader的工作方式意味着,在读取数据库的时候要保持与数据库的连接,如果此时断开连接,数据会读取失败.

对于SqlCommand对象调用ExecuteScalar方法来查询表中记录的数量,SqlCommand对象调用ExecuteDataReader方法,查询表中所有的记录

源代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SQLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            ///连接数据库
            string connection =
                "server=潘尚\\SQLEXPRESS;database=db_test;Trusted_Connection=true";
            SqlConnection sc = new SqlConnection(connection);
        //    sc.ConnectionString = connection;
            try
            {
                sc.Open();  //打开数据库连接
                Console.WriteLine("已经打开数据库连接!");
                SqlCommand cmd = new SqlCommand("SELECT * FROM db_student", sc);
                SqlDataReader sdr = cmd.ExecuteReader(); //执行查找记录命令
                while(sdr.Read())
                {
                    Console.WriteLine("{0}{1}{2}{3}", sdr[0], sdr[1], sdr[2], sdr[3]);
                }
//START:4.查询数据库记录//////////////////////////////////////////////////////////////
              /*  SqlCommand cmd = new SqlCommand("SELECT count(*) FROM db_student", sc);
                int i = (int)cmd.ExecuteScalar();//执行查找记录的命令
                Console.WriteLine("表中共有{0}条数据", i.ToString());  */
//END:4.查询数据库记录////////////////////////////////////////////////////////////////
//START:3.修改数据库数据的代码////////////////////////////////////////////////////////
             /*   SqlCommand cmd = new SqlCommand("UPDATE db_student SET student_grade=99 where student_name=@name", sc);  //创建SqlCommand对象
                cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = "潘";
                int i = cmd.ExecuteNonQuery();
                if (i > 0) Console.WriteLine("修改成功!");   */
//END:3.修改数据库数据的代码/////////////////////////////////////////////////////////
//START:1.删除数据库记录代码段///////////////////////////////////////////////////////
               /* string cmdtext = "DELETE FROM db_student WHERE student_name=@name";
                SqlCommand cmd = new SqlCommand(cmdtext, sc);
                cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = "潘";
                int i = cmd.ExecuteNonQuery();
                if (i > 0) Console.WriteLine("删除记录成功!"); */
//END:1.删除数据库记录代码段/////////////////////////////////////////////////////////
//START:2.添加记录的代码///////////////////////////////////////////////////////////////
             /*   SqlCommand cmd = new SqlCommand();//创建SqlCommand对象
                cmd.CommandType = CommandType.Text; //设置执行文本命令
                cmd.Connection = sc; //设置对象属性
                cmd.CommandText = 
                    "INSERT INTO db_student(student_name,student_age,student_address,student_grade)VALUES(@name,@age,@address,@grade)";
                //添加参数并为参数赋值
                cmd.Parameters.Add("@name", SqlDbType.VarChar, 10).Value = "潘";
                cmd.Parameters.Add("@age", SqlDbType.Int).Value = 19;
                cmd.Parameters.Add("@address", SqlDbType.VarChar).Value = "武汉";
                cmd.Parameters.Add("@grade", SqlDbType.Int).Value = 100;
                int i = cmd.ExecuteNonQuery(); //执行数据库添加记录命令
                if (i > 0) Console.WriteLine("添加记录成功"); */  //控制台输出添加记录 
//END:2.添加记录的代码/////////////////////////////////////////////////////////////////
            }
            catch (Exception ex)
            {
                Console.WriteLine("打开数据库错误:{0}", ex.Message);
            }
            finally
            {
                sc.Close();
                Console.WriteLine("数据库连接已关闭!");
            }
            System.Console.ReadLine();
        }
    }
}

Copy after login

运行结果:


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template