一、ADO.NET
就是将c#和sql连接起来的一个纽带
可以通过ADO.NET将内存中的临时数据写入到数据库中也可以将数据库中的数据提取到内存中供程序调用
二、连接数据库的基本格式
需要两个类
1、数据库连接类 SqlConnection
2、数据库操作类 SqlCommand
例:
在sql中创建数据库
create database DATA0720
go
use DATA0720
go
create table xinxi
(
code nvarchar(200) primary key,
[password] nvarchar(200),
name nvarchar(200),
birthday datetime,
sex bit,
nation varchar(200),
ncode nvarchar(200)
)
go
insert into xinxi values('zhaoliu','xtq0313','赵六',1992-03-13,1,'汉族','N001')
insert into xinxi values('zhangsan','xtq0313','张三',1991-05-11,0,'回族','N002')
insert into xinxi values('lisi','xtq0313','李四',1995-08-08,1,'满足','N003')
insert into xinxi values('wangwu','xtq0313','王五',1994-11-25,0,'彝族','N004')
select *from xinxi
create table Nxinxi
(
ncd varchar(200)primary key,
nplace varchar(200)
)
insert into Nxinxi values('N001','中国')
insert into Nxinxi values('N002','四川')
insert into Nxinxi values('N003','东北')
insert into Nxinxi values('N004','广西')
select *from Nxinxi
在c#中建立关系
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient; //必须引用此命名空间
namespace ADO.NET基础及增删
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入要删除的姓名:");
string s = Console.ReadLine();
//1、数据库的连接
//写连接字符串,立马就要想到有4点要写完,1、连接哪台服务器,2、连接哪个数据库,3、连接用户名,4、密码
string sql=("server=.;database=DATA0720;user=sa;pwd=123");
//实例化数据连接类,将连接字符串写到构造函数中,让这个类构造完毕后就连接到指定的服务器和数据库上
SqlConnection conn = new SqlConnection(sql);
//2、设置的操作
//通过已经连接的数据库创建一个对此库的操作类
SqlCommand cmd = conn.CreateCommand();
//编写TSQL语句
cmd.CommandText=("delete from xinxi where name='"+s+"'");
//3、执行操作并关闭连接
conn.Open(); //数据库连接打开
cmd.ExecuteNonQuery(); //数据库操作执行
conn.Close(); //数据库连接关闭
//提示
Console.WriteLine("您已成功删除姓名为"+s+"的人。");
Console.ReadKey();
这样就可以在c#中删除sql中的数据了。
三、在c#中查看sql中的数据
//表头
Console.WriteLine("账号 密码 姓名 出生日期 性别 民族 民族编号 ");
//数据库连接类(连接字符串)
SqlConnection conn = new SqlConnection("server=.;database=DATA0720;user=sa;pwd=123");
//数据库操作类,通过上面的连接类构建出来
SqlCommand cmd = conn.CreateCommand();
//查询语句
cmd.CommandText = "select *from xinxi ";
//数据库连接开启
conn.Open();
//调用此方法用来查询 !!!
SqlDataReader dr = cmd.ExecuteReader();
//每执行一次这个方法,指针就向下走一行,读取下面一行的数据,如果下面没有数据了,那么会返回一个false【dr.Read()只能一个记录一个记录的读取,所以需要用循环】
while (dr.Read())
{
Console.WriteLine(dr[0] + " " + dr[1] + " " + dr[2] + " " + Convert.ToDateTime(dr[3]).ToString("yyyy年MM月dd日") + " " + ((bool)(dr[4]) ? "男" : "女") + " " + dr[5] + " " + dr[6]);
}
//数据库连接关闭
conn.Close();
Console.ReadLine();