• DataReader的使用方法


     C#中提供的DataReader可以从数据库中每次提取一条数据。这里我做了一个登录验证的演示,演示从数据库中读取符合条件的记录:
    DataReader 常用属性
    FieldCount   获取字段数目
    IsClosed   取得状态True or Fals
    Item({name,ordinal})  获取或设置字段内容,name为字段名,ordinal为字段序号,可选用
    RecordsAffected   获取执行insert delete 或update后有多少行受到影响
    DataReader 常用方法
    CLose() 关闭
    GetBoolean(ordinal) 取得第 ordinal+1列的内容,返回值为boolean类型,还有GetByte(ordinal),GetDecimal(ordinal).....
    GetDataTypeName(ordinal) 取得第ordinal+1列的源数据类型名称
    GetFileType(ordinal) 取得第ordinal+1列的数据类型
    GetName(ordinal) 取得ordinal+1列的字段名称
    GetOrdinal(name) 取得字段名称为name的字段列号
    GetValue(ordinal) 取得ordinal+1列的内容
    GetValues(values) 取得所有字段内容,并将内容放在values数组中,数组大小与字段数目相等,些方式比GetValue()更有效率
    IsDBNull(orderinal) 判断第ordinal+1列是否为Null ,返回Boolean
    Read() 读取下一条数据,如果没有了,将返回False,默认情况下,指针是在第一条记录的上方
    程序的界面设计如下:

    程序部分源代码如下:              

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.OleDb;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsApplication4
    {
        publicpartial class Form1 : Form
        {
           public Form1()
           {
               InitializeComponent();
           }
           
           //定义链接
           OleDbConnection conn;
           //定义命令
           OleDbCommand cmd;
           //定义datareader
           OleDbDataReader myreader;
           //定义两个变量用来存储数据库链接字符串和命令字符串
           string connstr, selectcmd;
           private void button1_Click(object sender, EventArgs e)
           {
               connstr = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=db.mdb";
               selectcmd = "select * from yonghu where username='" + textBox1.Text+ "' and password='" + textBox2.Text + "'";
               //实例化链接并打开
               conn = new OleDbConnection(connstr);
               conn.Open();
               //实例化cmd并制定执行语句与执行链接
               cmd = new OleDbCommand(selectcmd, conn);
               //执行查询命令并赋给datareader
               myreader = cmd.ExecuteReader();
               /*判断myreader中是否真的读取到了数据,也就是说查询命令是否有结果
               datareader的read方法可以将数据指针移动到下一条记录上,因为datareader的数据指针刚开始位于
               第一条的上方,因此第一次调用read方法的时候实际上指针指向第一条记录*/
               if (myreader.Read())
               {
                   //myreader中有数据,表示给出的用户名和密码在数据库中有匹配记录
                   MessageBox.Show("登录成功");
                   //如果登录成功则取出用户名和等级填入下面的文本框中
                   textBox3.Text = myreader["username"].ToString();
                   textBox4.Text = myreader["level"].ToString();
               }
               else
               {
                   //myreader中没有数据,表示给出的用户名和密码至少有一个是错的
                   MessageBox.Show("登录失败!!");
               }
               myreader.Close();
               conn.Close();
               
           }

           private void button2_Click(object sender, EventArgs e)
           {
               Application.Exit();
           }
        }
    }

  • 相关阅读:
    2049
    2046 ACM 数学
    1290 ACM 数学
    2017 ACM 字符串的本质
    1171 Big Event in HDU 01背包
    2045 数学:排列组合
    git命令(版本控制之道读书笔记)
    mysql:赋予用户权限、查看及修改端口号
    Linux系统的命令别名功能(转)
    回到上次目录、历史命令查找快捷方式及执行时间显示设置、查看系统版本
  • 原文地址:https://www.cnblogs.com/allanbolt/p/1489647.html
Copyright © 2020-2023  润新知