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) 列值的合计

       

    其他的以后再补充说明。

  • 相关阅读:
    vue开发chrome扩展,数据通过storage对象获取
    Vue手动集成less预编译器
    Google Translate寻找之旅
    Javascript Range对象的学习
    Javascript Promises学习
    SublimeText 建立构建Node js系统
    We're sorry but demo3 doesn't work properly without JavaScript enabled. Please enable it to continue.
    npm安装包出现UNMET DEPENDENCY报错
    (转载)命令行说明中格式 尖括号 中括号的含义
    Linux重启网卡服务Failed to start LSB: Bring up/down networking.
  • 原文地址:https://www.cnblogs.com/anyihen/p/5355443.html
Copyright © 2011-2022 走看看