zoukankan      html  css  js  c++  java
  • ADO.NET(二)

     对Command的拓展延伸

    执行SQL语句。

    Command 对象需要取得将要执行的SQL语句,通过调用该类的多种方法,向数据库提交SQL语句。

    ExecuteNonQuery(),ExecuteReader(),ExecuteScalar() 三种方法。

    1,ExecuteNonQuery()方法

    通常使用它来执行Update、Insert和Delete语句。

    该方法返回值意义如下:

      对于Update、Insert和Delete语句,返回值为该命令所影响的行数。

      对于所有其他类型的语句,返回值为-1。

    例1,

    string Con = "server=.;database=ChenX;uid=sa;pwd=";
    SqlConnection coon = new SqlConnection(Con);
    coon.Open();
    SqlCommand cmd = new SqlCommand();//创建一个SqlCommand对象
    cmd.Connection = coon;//设置Connection属性
    cmd.CommandText = "select * from Person where HasNumChild=1";//设置CommandText 的SQL语句 ,(1)查询
    cmd.CommandText = "Update Person set HasNumChild=3 Where HasNumChild=1";// (2)更改 HasNumChild 字段
    cmd.CommandType = CommandType.Text; //设置 CommandType 属性为Text,使其只执行SQL语句文本形式。
    label2.Text = (cmd.ExecuteNonQuery()).ToString();

    运行结果:选择执行(1)的时候  返回结果为  -1;

                   执行(2)的时候  返回结果为,2;即为该命令所影响的行数

    2,ExecuteReader() 方法

    执行SQL语句,生成一个包含数据的SqlDataReader 对象的实例。

    例2,

    ...//同上

    cmd.CommandText = "select * from Person ";
    cmd.CommandType = CommandType.Text; //设置 CommandType 属性为Text,使其只执行SQL语句文本形式。
    SqlDataReader sdr = cmd.ExecuteReader();//使用ExecuteReader方法实例化一个SqlDataReader对象
    while (sdr.Read())
    { //Read() 读取 SqlDataReader
    listView1.Items.Add(sdr[2].ToString());
    //sdr[2]中的 2 代表读取所要查询表的第3列,从0开始为第1列,依次类推 ,sdr["Age"]这种是返回该表Age字段的那一列结果。
    }

    注:  .Read()的每次调用都会从结果集中返回一行

    运行结果: 显示 Person表的所有第三列内容。

    顺便大略讲一下 DataReader 对象。  在上一节,将DataReader比作 水直接到用户家里面使用的管子,那么它读取数据的速度快。

    DataReader 对象是数据读取器对象,提供只读向前的游标。比如,应用程序需要每次从数据库中取出最新数据,或者只是需要快速读取数据,并不需要修改数据,那可以用它。

    有时候可以用它的HasRows属性来判断所查询的表是否有值。

    ...//同上

    SqlDataReader sdr = cmd.ExecuteReader();

    sdr.Read();

    if(sdr.HasRows){  MessageBox.show("数据表有值");

    }

    else

    {MessageBox.show("数据表没有值");

    }...

    注:在使用SqlDataReader 对象之前,必须打开数据库连接。如果针对一个SqlConnection,创建多个SqlDataReader 对象,则创建下一个SqlDataReader对象之前,要通过Close方法关闭一个SqlDataReader 对象。

    3,ExecuteScalar() 方法

    在上一节有一个相关的例题,它的主要返回结果集的第一行第一列内容。

    他一般与聚合函数一起使用。

    聚合函数 说明                           
    AVG(expr) 列平均值,该列只包含数字数据
    COUNT(expr)、COUNT(*) 列值的计数(列名为指定expr)、表中所有行数
    MAX(expr) 列值最大值

    MIN( expr)

    列值最小值
    SUM(expr) 列值的合计

       

    其他的以后再补充说明。

  • 相关阅读:
    C++设计模式——代理模式
    C++设计模式——享元模式
    C++设计模式——外观模式
    C++设计模式——装饰模式
    C++设计模式——组合模式
    C++设计模式——桥接模式
    C++设计模式——适配器模式
    C++设计模式——原型模式
    云服务器和虚拟主机的区别
    ES6的Module系统
  • 原文地址:https://www.cnblogs.com/anyihen/p/5355443.html
Copyright © 2011-2022 走看看