一.了解Command对象

  1.Command对象:封装了所有对外部数据源的操作,包括增删改查和执行存储过程,并在执行完成后返回合适的结果,同Connection一样,对于不同的数据源,Ado.net有不同的类

  2.重要的属性:

    ①.CommandText:设置对数据库进行的操作

    ②.CommandType:设置操作的类型

      值为"1":表示CommandText中的内容为Sql语句

      值为"4":表示CommandText中的内容为存储过程

    ③.Connection:获取或设置与数据源的连接

    ④.Parameters:绑定Sql语句或存储过程的参数

    ⑤.Tranction:获取或设置在其中执行.NET Framework数据提供程序的Command对象的事务

  3.重要的方法:

    ①.ExecuteNonQuery:执行不返回数据行的操作,并返回一个int类型的数据,在对数据库进行Update,Insert,Delete的操作时,返回该语句影响的行数,对于其他所有类型的语句,返回值为-1

    ②.ExecuteReader:返回DataReader类型的对象

    ③.ExecuteScalar:返回结果集中的第一行第一列,如果没有返回null

  4.创建Command对象

    ①.通过构造函数创建对象:

string strSQL = "Select * from tb_SelCustomer";
SqlCommand cmd = new SqlCommand(strSQL, conn);

    ②.通过Command对象的属性:

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = strSQL;

  5.增删改

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

 namespace ConsoleApp5
 {
     class Program
     {
         static void Main(string[] args)
         {
             SqlConnectionStringBuilder conStr = new SqlConnectionStringBuilder();
             conStr.DataSource = "DESKTOP-0MBGCKA\\SQL2016";
             conStr.InitialCatalog = "test";
             conStr.IntegratedSecurity = true;
             SqlConnection conn = new SqlConnection();
             conn.ConnectionString = conStr.ConnectionString;
             SqlCommand com = conn.CreateCommand();
             //com.CommandText = "delete from classmate where ID=2";//删除一条记录
             //com.CommandText = "insert into classmate values('燕子')";//新增一条记录
             com.CommandText = "update classmate set Name='柳岩' where ID =3 ";//修改一条记录
             conn.Open();
             int i = com.ExecuteNonQuery();
             conn.Close();
             conn.Dispose();
             )
             {
                 Console.WriteLine("删除成功");
             }
             else
             {
                 Console.WriteLine("删除失败");
             }
             Console.ReadKey();
         }
     }
 }

  6.查询数据

    ①.返回多条数据时使用ExecuteReader()方法,返回一个DataReader类型的对象,该对象包含一行数据,read()方法,在没有下一行时返回false.

      特别注意,DataReader类型的对象在用完有需要close掉,Sql Server默认一次只能打开一个DataReader对象

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

 namespace ConsoleApp5
 {
     class Program
     {
         static void Main(string[] args)
         {
             //创建连接字符串
             SqlConnectionStringBuilder strConn = new SqlConnectionStringBuilder();
             strConn.DataSource = "DESKTOP-0MBGCKA\\SQL2016";
             strConn.InitialCatalog = "SS";
             strConn.IntegratedSecurity = true;
             using (SqlConnection conn = new SqlConnection(strConn.ConnectionString))
             {
                 string strSql = "select * from Student";
                 SqlCommand cmd = new SqlCommand(strSql, conn);
                 conn.Open();
                 try
                 {
                     SqlDataReader reader = cmd.ExecuteReader();
                     if (reader != null && reader.HasRows)
                     {
                         ;
                         Console.WriteLine("*****************************************\n");
                         while (reader.Read())
                         {
                             ; i < reader.FieldCount; ++i)
                             {
                                 Console.WriteLine("{0}:{1}", reader.GetName(i), reader.GetValue(i));
                             }
                             ++rows;
                         }
                         Console.WriteLine("\n共{0}行记录", rows);
                     }
                     reader.Close();
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("\nError:\n{0}", ex.Message);
                 }
             }
             Console.Read();
         }
     }
 }

    ②.查询结果返回一个值时,使用ExecuteScalar()方法,该方法返回一个object类型的对象,在调用该返回值时需要进行强制转换

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

 namespace ConsoleApp5
 {
     class Program
     {
         static void Main(string[] args)
         {
             //创建连接字符串
             SqlConnectionStringBuilder strConn = new SqlConnectionStringBuilder();
             strConn.DataSource = "DESKTOP-0MBGCKA\\SQL2016";
             strConn.InitialCatalog = "SS";
             strConn.IntegratedSecurity = true;
             using (SqlConnection conn = new SqlConnection(strConn.ConnectionString))
             {
                 string strSql = "select count(*) from Student";
                 SqlCommand cmd = new SqlCommand(strSql, conn);
                 conn.Open();
                 try
                 {
                     int row = (int)cmd.ExecuteScalar();
                     Console.WriteLine("共有{0}行数据", row);
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("\nError:\n{0}", ex.Message);
                 }
             }
             Console.Read();
         }
     }
 }

Ado.net之对数据库的增删改查的更多相关文章

  1. Asp.net MVC4 使用EF实现数据库的增删改查

    EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查       查询 (因为在Model中已经添加EF实体了 ...

  2. 使用EF实现数据库的增删改查

    EF的使用步骤:(1)将EF添加到项目:在Model右击添加新建项找到ADO.NET实体数据模型,接着…(2)实现数据库的增删改查查询(因为在Model中已经添加EF实体了,所以就可以在Control ...

  3. ThinkPHP实现对数据库的增删改查

    好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...

  4. Android学习---数据库的增删改查(sqlite CRUD)

    上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...

  5. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  6. Android SQL语句实现数据库的增删改查

    本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...

  7. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  8. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  9. 利用API方式进行数据库的增删改查

    /* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...

随机推荐

  1. 剑指Offer 56. 删除链表中重复的结点 (链表)

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  2. scrapy框架之递归解析和post请求

    递归爬取解析多页页面数据 scrapy核心组件工作流程 scrapy的post请求发送 1.递归爬取解析多页页面数据 - 需求:将糗事百科所有页码的作者和段子内容数据进行爬取切持久化存储 - 需求分析 ...

  3. 【开发遇到的问题】Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type java.util.Date from String[)

    1.问题排查 - 项目配置 springboot 2.1 maven配置jackson - 出现的场景: 服务端通过springmvc写了一个对外的接口,查询数据中的表,表中有一个字段属性是时间戳,返 ...

  4. 关于loadrunner的了解

    1.性能测试目的: 为什么要进行性能测试呢?  有些问题是只有在大并发或者压力测试下才会暴露出来的,在平常的公司内部测试中,感觉一切都是正常的,但是把服务放到生产线上,例如某个时刻突然有很多的用户要向 ...

  5. GCD XOR(UVa 12716)

    题意:输入整数n(1<=n<=30000000),有多少对整数(a,b)满足1<=b<=a<=n,且gcd(a,b)=a xor b. 题解:设c=gcd(a,b),因为 ...

  6. ubuntu下安装mysql和配置远程访问

    ubuntu下安装mysql和配置远程访问   下载安装mysql sudo apt-get install mysql-client mysql-server 安装的时候会提示要设置root密码,如 ...

  7. COMBIN14简单应用

    目录 案例1 说明 APDL代码 结果 案例2 说明 APDL代码 结果 案例3 说明 APDL代码 结果 参考网址:http://blog.sina.com.cn/s/blog_65936c2301 ...

  8. 为什么redis使用单线程还能这么快?

    通常来讲,单线程处理能力要比多线程差,但是redis为什么就快了,这主要得益于以下几个原因: 1.纯内存访问,redis将所有数据放在内存中,内存的响应时长大约为100纳秒,这是redis达到每秒万级 ...

  9. python logging配置时间或大小轮转

    python中的很多模块是非常牛X的,之前提到过logging模块(其功能类似于java下的Log4j ),由于最近一个涉及网络排障的脚本需要日志输出,这里就使用了python的logging模块去实 ...

  10. py-day3-1 python 风湿理论之函数即变量

    # 风湿理论之函数即变量 def foo(): print('from foo') bar() def bar(): print('from bar') foo() from foo from bar ...