Ado.net之对数据库的增删改查
一.了解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之对数据库的增删改查的更多相关文章
- Asp.net MVC4 使用EF实现数据库的增删改查
EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查 查询 (因为在Model中已经添加EF实体了 ...
- 使用EF实现数据库的增删改查
EF的使用步骤:(1)将EF添加到项目:在Model右击添加新建项找到ADO.NET实体数据模型,接着…(2)实现数据库的增删改查查询(因为在Model中已经添加EF实体了,所以就可以在Control ...
- ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 利用API方式进行数据库的增删改查
/* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...
随机推荐
- Matlab_audiowrite_音频生成
输出音频文件所需函数为 audiowrite .通过例程进行解释: % 生成时间序列 fs = 5000; % [Hz] 信号采样频率 T = 1; % [s] 信号长度 x = 0:1/fs:T; ...
- 剑指Offer 56. 删除链表中重复的结点 (链表)
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...
- 自动化测试-7.selenium定位一组对象
前言 前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象. webdriver 提供了定位一组元素的方法,跟前面八种定位方式 ...
- Windows 应用商店无法下载---启动更新
今天想在应用商店下载东西,但是以直没成功,查看原因结果是因为我的Windows自动更新关了. 百度,如何打开自动更新,要打开本地组策略编辑器,但是我是Windows家庭版,,,没有这个东西,, 最后, ...
- linux 查看当前系统版本号
为避免现场未能完全安装系统,使用yum 安装版本需一致 第一种方法: [root@sky9896sky]# lsb_release -a bash:lsb_release: command not f ...
- linux (centOS)安装 oracle 11g 以及卸载oracle
目录 首先.1. 一.参数以及环境配置 1.创建用户和组 2.创建数据库软件目录和数据文件存放目录 3.配置oracle用户的环境变量 4.修改linux内核,修改/etc/sysctl.conf文件 ...
- python 在一个excel存多个sheet
import pandas as pdimport numpy as npimport osfrom sqlalchemy import create_engine def get_station_w ...
- c——根据天数输出日期
<c语言程序设计>(第三版)何钦铭 P190 #include<stdio.h> void month_day(int year,int yearday,int *pmonth ...
- 排序算法练习--JAVA(:内部排序:插入、选择、冒泡、快速排序)
排序算法是数据结构中的经典算法知识点,也是笔试面试中经常考察的问题,平常学的不扎实笔试时候容易出洋相,回来恶补,尤其是碰到递归很可能被问到怎么用非递归实现... 内部排序: 插入排序:直接插入排序 选 ...
- zabbix之 自动发现磁盘io util 监控
一.iostat Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个.iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之 ...