2016年11月28日--ADO.Net 增、删、改、查
数据访问
对应命名空间:System.Data.SqlClient;
SqlConnection:连接对象
SqlCommand:命令对象
SqlDataReader:读取器对象
CommandText:命令文本
增、删、改、查
1.造连接字符串
string connstring = "server=.;database=mydb;user=sa;pwd=123";
connstring:造的字符串名
server指服务器:一般是IP地址,本机可以使用点;
database指数据库名称:要访问的数据库名称
user数据库的用户名:一般是sa
pwd数据库的密码:自己设置的
2.造连接对象
SqlConnection conn = new SqlConnection(connstring);
conn:造的连接对象名
3.创建命令对象
SqlCommand cmd = conn.CreateCommand();
cmd:造的命令对象名
4.写要执行的SQL语句
4-1:查询
cmd.CommandText = "select * from Info";
//4-2:添加
cmd.CommandText = "Insert into Info values('p032','毒哥','True','n001','1987-02-02')";
//4-3:删除
cmd.CommandText = "delete from Info where Code='p032';
//4-4:更改
cmd.CommandText = "update Info set name='情方方' where Code='p032';
【打开连接】
conn.Open(); //可放在执行之前的任意位置
5.执行操作
5-1:(读取操作,返回读取器对象)
SqlDataReader dr = cmd.ExecuteReader();
//5-2.执行操作(增删改操作,返回行数)
cmd.ExecuteNonQuery();
6.处理数据
6-1:查询一条数据
if (dr.HasRows) //HasRows 判断是否有行数据 bool型,返回true/false
{
dr.Read(); //dr.Read() 是数据库数据访问指针,每执行一次都会向下走一行,如果有内容则返回true,同时dr访问为当前行数据集合,
可以使用索引或是列名来访问相对应的数据
Console.WriteLine(dr[0]);
Console.ReadLine();
}
else
{
Console.WriteLine("读取失败!");
}
//6-2.查询多条数据
if (dr.HasRows)
{
while(dr.Read()) //使用while循环读取所有数据 一行数据是一个数组,一行数据里有多少列就有多少个索引
{
Console.WriteLine(dr[0]+"----"+dr[1]);
}
Console.ReadLine();
}
else
{
Console.WriteLine("没有读到数据");
Console.ReadLine();
}
【关闭连接】
conn.Close();
例:根据用户输入一个条件查询数据

static void Main1(string[] args) { //用户输入内容 Console.WriteLine("请输入要查询的名称:"); string str = Console.ReadLine(); //造连接字符串 string connstring = "server=.;database=mydb;user=sa;pwd=123"; //造连接对象 SqlConnection conn = new SqlConnection(connstring); //造命令对象 SqlCommand cmd = conn.CreateCommand(); //准备一条SQL语句 cmd.CommandText = "select * from Info where Name like '%"+str+"%'"; //打开连接 conn.Open(); //执行SQL语句 SqlDataReader dr = cmd.ExecuteReader(); //读取数据 if (dr.HasRows) { while (dr.Read()) { ; while ( n <dr.FieldCount ) //.FieldCount获取当前行的列数 { Console.Write(dr[n]+"\t"); n++; } Console.WriteLine(); } } else { Console.WriteLine("没有查到满足条件的数据"); } //关闭连接 conn.Close(); Console.ReadLine(); }

例:让用户输入要删除的数据主键值(此方法不安全)

static void Main4(string[] args) { //用户输入要删除的数据主键值 Console.WriteLine("请输入要删除的代号:"); string code = Console.ReadLine(); //判断该数据存不存在 SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123"); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from Info where Code='"+code+"'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { //说明该数据存在 Console.WriteLine("查到该数据,是否要执行删除操作,如果要删除请输入:1"); int sc = Convert.ToInt32(Console.ReadLine()); ) { //删除 dr.Close(); //关闭读取器 cmd.CommandText = "delete from Info where Code='"+code+"'"; cmd.ExecuteNonQuery(); Console.WriteLine("删除成功!"); } else { //不删除 dr.Read(); ])?"男":"女"; ].ToString()); ]+]+]; Console.WriteLine(str); } } else { //数据不存在 Console.WriteLine("输入的代号错误!"); } conn.Close(); Console.ReadLine(); } static string MinZu(string code) { string name=""; SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123"); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select Name from Nation where Code = '" + code + "'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { dr.Read(); name = dr[].ToString(); } conn.Close(); return name; }

例:让用户输入要添加的内容

static void Main3(string[] args) { //让用户输入要添加的内容 Console.WriteLine("请输入要添加的代号:"); string code = Console.ReadLine(); Console.WriteLine("请输入姓名:"); string name = Console.ReadLine(); Console.WriteLine("请输入性别:"); bool sex = Console.ReadLine()=="男"?true:false; Console.WriteLine("请输入民族:"); string nation = Console.ReadLine(); Console.WriteLine("请输入生日:"); string birthday = Console.ReadLine(); string nationcode = "n001"; //将民族名称转为名族代号 SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123"); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select Code from Nation where Name = '"+nation+"'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { dr.Read(); nationcode = dr[].ToString(); } conn.Close(); //往Info表添加数据 cmd.CommandText = "insert into Info values('"+code+"','"+name+"','"+sex+"','"+nationcode+"','"+birthday+"')"; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); Console.WriteLine("添加成功!"); Console.ReadLine(); }

2016年11月28日--ADO.Net 增、删、改、查的更多相关文章
- 2016年11月28日--ADO.Net 查、插、删、改 小练习
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 2016年11月28日 星期一 --出埃及记 Exodus 20:19
2016年11月28日 星期一 --出埃及记 Exodus 20:19 and said to Moses, "Speak to us yourself and we will listen ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- 2016年11月14日--SQL创建数据库、表-查、插、删、改
--创建数据库(create database 数据库名)create database hq20161114go --使用选择数据库(use 数据库名)use hq20161114go --创建学生 ...
- 2016年12月28日 星期三 --出埃及记 Exodus 21:23
2016年12月28日 星期三 --出埃及记 Exodus 21:23 But if there is serious injury, you are to take life for life,若有 ...
- 2016年11月30日 星期三 --出埃及记 Exodus 20:21
2016年11月30日 星期三 --出埃及记 Exodus 20:21 The people remained at a distance, while Moses approached the th ...
- 2016年11月29日 星期二 --出埃及记 Exodus 20:20
2016年11月29日 星期二 --出埃及记 Exodus 20:20 Moses said to the people, "Do not be afraid. God has come t ...
- 2016年11月27日 星期日 --出埃及记 Exodus 20:18
2016年11月27日 星期日 --出埃及记 Exodus 20:18 When the people saw the thunder and lightning and heard the trum ...
- 2016年11月26日 星期六 --出埃及记 Exodus 20:17
2016年11月26日 星期六 --出埃及记 Exodus 20:17 "You shall not covet your neighbor's house. You shall not c ...
随机推荐
- CHM打不开的解决方法
CHM打不开的解决方法 听语音 | 浏览:62240 | 更新:2013-02-04 14:58 | 标签:软件 1 2 3 4 5 6 分步阅读 一键约师傅 百度师傅高质屏和好师傅,拯救你的碎屏机 ...
- C++的vector对象
C++的vector使用 标签(空格分隔): C++ 标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象,因为vector容纳着其 ...
- Python3的decode()与encode()
python3的decode()与encode() Tags: Python Python3 对于从python2.7过来的人,对python3的感受就是python3对文本以及二进制数据做了比较清晰 ...
- OllyUni.dll
OllyUni.dll 周银辉 好像很多人找不到OllyUni.dll ,下载在这里:http://www.phenoelit.org/win/index.html 注:在OllyDBG2.0中用不了 ...
- java并发编程学习: 原子变量(CAS)
先上一段代码: package test; public class Program { public static int i = 0; private static class Next exte ...
- LeetCode 笔记系列13 Jump Game II [去掉不必要的计算]
题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...
- AppBox升级进行时 - 扁平化的权限设计
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox v2.0中的权限实现 AppBox v2.0中权限管理中涉及三个 ...
- ionic配置 问题小记
1.用命令ionic start myApp tabs新建项目时,在最后面提示ionic\cli.js报错的问题(具体问题描述忘记了) 安装 node-inspector 即可 ,使用命令 cnpm ...
- JavaScript的理解记录(6)
---接上篇: 四.CSS相关: 1.CSS不支持注释// 支持注释/* */ 2. 几种浏览器厂商前缀: Firefox : -moz-; Chrome:-webkit- ; IE: ...
- 软件工程(FZU2015)赛季得分榜,第二回合
目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...