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 ...
随机推荐
- [No00006C]文件名复制,归档小助手【自己写的小工具,希望能帮助大家】
特别补充一句:软件可以一次性复制多个文件的文件名. Windows 中的复制文件名实在是有些不方便 ,需要点右键 "重命名"之后再点右键选择"复制"才可复制文件 ...
- IIS短文件名暴力枚举漏洞利用脚本
import sys import httplib import urlparse import threading import Queue import time class Scanner(): ...
- Android 从网络中获取数据时 产生部分数据乱码的解决
产生部分数据乱码的解决 标签: android部分中文乱码 2014-04-12 23:24 12366人阅读 评论(10) 收藏 举报 分类: [Android 基础](15) 版权声明:本文为博主 ...
- One EEG preprocessing pipeline - EEG-fMRI paradigm
The preprocessing pipeline of EEG data from EEG-fMRI paradigm differs from that of regular EEG data, ...
- IP地址查询接口及调用方法
1.查询地址 搜狐IP地址查询接口(IP):http://pv.sohu.com/cityjson 1616 IP地址查询接口(IP+地址):http://w.1616.net/chaxun/ipto ...
- JS中判断null、undefined与NaN的方法
写了个 str ="s"++; 然后出现Nan,找了一会. 收集资料如下判断: 1.判断undefined: 代码如下: <span style="font-siz ...
- Android利用Jsoup解析html 开发网站客户端小记。
这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容.好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体 ...
- 在 JS 中使用 fetch 更加高效地进行网络请求
在前端快速发展地过程中,为了契合更好的设计模式,产生了 fetch 框架,此文将简要介绍下 fetch 的基本使用. 我的源博客地址:http://blog.parryqiu.com/2016/03/ ...
- SharpPcap网络包捕获框架的使用--实例代码在vs2005调试通过
转自:http://hi.baidu.com/boyxgb/blog/item/89ac86fbdff5f82c4e4aea2e.html 由于项目的需要,要从终端与服务器的通讯数据中获取终端硬件状态 ...
- 项目分析_xxoo-master
项目介绍:使用java1.5的原生xml操作类实现 对象<-->xml字符串的相互转化 项目分析:主要分为是三个部分 1.容器类:AbstractContainer 存储x ...