ADO.NET:
数据访问技术
就是将C#和MSSQL连接起来的一个纽带
可以通过ADO.NET将内存中的临时数据写入到数据库中
也可以将数据库中的数据提取到内存中供程序调用
所有数据访问技术的基础
连接数据库基本格式:
需要两个类
1、数据库连接类 SqlConnection
2、数据库操作类 SqlCommand
//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 Users where UserName='" + Uname + "'";
//3、执行操作
conn.Open(); //数据库连接打开
cmd.ExecuteNonQuery(); //数据库操作执行
conn.Close();//数据库连接关闭
增删改:
SqlConnection
SqlCommand
cmd.ExecuteNonQuery();
查:
SqlConnection
SqlCommand
SqlDataReader
cmd.ExecuteReader()
查询基本格式:
//数据库连接类(连接字符串)
SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");
//数据库操作类,通过上面的连接类构建出来
SqlCommand cmd = conn.CreateCommand();
//查询语句
cmd.CommandText = "select *from Users";
conn.Open();//数据库连接开启
SqlDataReader dr = cmd.ExecuteReader();//调用此方法用来查询 !!!!
//每执行一次这个方法,指针就向下走一行,读取下面一行的数据,如果下面没有数据了,那么会返回一个false
while (dr.Read())
{
//如果读出来数据,那么当前读到的这一行数据就放在dr这个对象里,可以使用两种方式将数据取出来
//1、使用索引 - dr[索引值]
Console.WriteLine(dr[0] + " " + dr[1] + " " + dr[2] + " " + (((bool)dr[3]) ? "男" : "女") + " " + Convert.ToDateTime(dr[4]).ToString("yyyy年MM月dd日") + " " + dr[5]);
//2、使用列名 - dr["列名"]
Console.WriteLine(dr["UserName"] + " " + dr["Nation"]);
}
conn.Close();//数据库连接关闭
//数据库中存放的数据并不一定能够直接拿出来给用户看,那么就需要C#段将数据加工以后,再展现出来
例如:
Console.WriteLine(dr[0] + " " + dr[1] + " " + dr[2] + " " + (((bool)dr[3]) ? "男" : "女") + " " + Convert.ToDateTime(dr[4]).ToString("yyyy年MM月dd日") + " " + dr[5]);
一、增加
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 增加 { class Program { static void Main(string[] args) { Console.Write("请输入用户名:"); string Uname = Console.ReadLine(); Console.Write("请输入密码:"); string Pwd = Console.ReadLine(); Console.Write("请输入用户昵称:"); string Nname = Console.ReadLine(); Console.Write("请输入性别:"); bool Sex = Convert.ToBoolean(Console.ReadLine());//转换为bool类型 Console.Write("请输入生日:"); DateTime Birthday = Convert.ToDateTime(Console.ReadLine());//转换为时间类型 Console.Write("请输入民族:"); string Nation = Console.ReadLine(); ////1、连接数据库 //string sql = "server=.;database=Data0720;user=sa;pwd=123;";//编写连接字符串 //SqlConnection conn = new SqlConnection(sql); ////2、设置数据库中需要修改的数据操作 //SqlCommand cmd = conn.CreateCommand(); //cmd.CommandText = "insert into Users values('"+Uname+"','"+Pwd+"','"+Nname+"','"+(Sex?"1":"0")+"','"+Birthday+"','"+Nation+"')";//双引号内是SQL添加数据的语句 ////3、执行操作 //conn.Open(); //cmd.ExecuteNonQuery(); //conn.Close(); //练习操作 //1、连接数据库 string sql = "server=.;database=Data0720;user=sa;pwd=123";//编写连接字符串 SqlConnection conn = new SqlConnection(sql); //2、设置数据库中的表的操作 SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "insert into Users values('"+Uname +"','"+Pwd +"','"+Nname+"','"+(Sex?"1":"0")+"','"+Birthday +"','"+Nation+"')"; //3、执行操作 conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); //提示一下,看是否添加成功 Console.WriteLine("您已添加成功!"); Console.ReadLine(); } } }
二、删除
using System; using System.Collections.Generic; using System.Data.SqlClient;//该命名空间是SqlConnection解析后连接的 using System.Linq; using System.Text; using System.Threading.Tasks; namespace ADO.NET基础_增删 { class Program { static void Main(string[] args) { Console.Write("请输入要删除的用户名:"); string Uname = Console.ReadLine(); ////1、连接数据库 //string sql = "server=.;database=Data0720;user=sa;pwd=123;";//编写连接字符串 //SqlConnection conn = new SqlConnection(sql);//构造函数,在这里可以重载 ////2、设置要对数据库中的表的操作 //SqlCommand cmd = conn.CreateCommand(); //cmd.CommandText = "delete from Users where username='"+ Uname +"'";//双引号内就是SQL中的删除语句 ////3、执行操作 //conn.Open(); //cmd.ExecuteNonQuery(); //conn.Close(); //练习操作 //1、连接数据库 string sql = "server=.;database=Data0720;user=sa;pwd=123";//编写连接字符串 SqlConnection conn = new SqlConnection(sql); //2、设置要对数据库中的表进行的操作内容 SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "delete from Users where username='"+Uname+"'"; //3、执行操作 conn.Open();//打开通道 cmd.ExecuteNonQuery();//执行操作 conn.Close();//关闭通道,通道只有一个,每次用完都要关闭,要不然下次用连接不上 //提示一下,看是否删除成功,成功则显示提示语句,不成功则不显示,并报错 Console.WriteLine("您已删除成功!"); Console.ReadLine(); } } }
三、修改
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; namespace 改查 { class Program { static void Main(string[] args) { //改 //用户名不可以修改(实际应用中是不能修改的),需要修改什么就写什么 Console.Write("请输入要修改的用户名:"); string Uname = Console.ReadLine(); Console.Write("请输入修改后的密码:"); string Pwd = Console.ReadLine(); Console.Write("请输入修改后的性别:"); string Sex = Console.ReadLine(); //1、连接数据库 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;");//编写连接字符串 //2、设置修改内容的操作 SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "update Users set [password]='" + Pwd + "',sex='" + Sex +"' where username='" + Uname + "';"; //3、执行操作 conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); //4、提示一下是否修改完成 Console.WriteLine("您已修改完成!"); Console.ReadLine(); } } }
四、查询
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; namespace 查 { class Program { static void Main(string[] args) { Console.WriteLine("用户名" + " " + "密码" + " " + "昵称" + " " + "性别" + " " + "生日" + " " + "民族"); //1、连接数据库 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;"); //2、设置数据库中的表的操作 SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from Users;"; //3、执行操作 conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { ////如果读出来数据,那么当前读到的这一行数据就放在dr这个对象里面,有两种方式读取 ////1、使用索引号:dr[索引号] //Console.WriteLine(dr[0] + " " + dr[1] + " " + dr[2] + " " + (((bool)dr[3]) ? "男" : "女") + " " + Convert.ToDateTime(dr[4]).ToString("yyyy年MM月dd日") + " " + dr[5]); //2、使用列名:dr["列名"] Console.WriteLine(dr["username"] + " " + dr["password"] + " " + dr["nickname"] + " " + (((bool)dr["sex"])?"男":"女") + " " + Convert.ToDateTime(dr["brithday"]).ToString("yyyy年MM月dd日") + " " + dr["nation"]); } conn.Close(); Console.ReadLine(); } } }
五、作业:显示信息;请输入你想执行的操作(1添加,2修改,3删除);操作完成后刷新信息表,并可以无限循环执行操作。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient;//引用这个空间命名 namespace 作业 { class Program { static void Main(string[] args) { while (true) { //显示信息 Console.Clear();//清屏 #region Console.WriteLine("用户名" + " " + "密码" + " " + "昵称" + " " + "性别" + " " + "生日" + " " + "民族"); //实例化,创建类,连接数据库 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;"); //设置数据库中的表的操作 SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from Users;"; //执行操作 conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Console.WriteLine(dr["username"] + " " + dr["password"] + " " + dr["nickname"] + " " + (((bool)dr["sex"]) ? "男" : "女") + " " + Convert.ToDateTime(dr["brithday"]).ToString("yyy年MM月dd日") + " " + dr["nation"]); } conn.Close(); #endregion Console.Write("请输入您想执行的操作(1.添加 2.修改 3.删除):"); string n = Console.ReadLine(); //添加信息 if (n == "1") { Console.Write("请输入您要添加的用户名:"); string Uname = Console.ReadLine(); Console.Write("请输入您要添加的密码:"); string Pwd = Console.ReadLine(); Console.Write("请输入您要添加的昵称:"); string Nname = Console.ReadLine(); Console.Write("请输入您要添加的性别:"); bool Sex = Convert.ToBoolean(Console.ReadLine()); Console.Write("请输入您要添加的生日:"); DateTime Birthday = Convert.ToDateTime(Console.ReadLine()); Console.Write("请输入您要添加的民族:"); string Nation = Console.ReadLine(); //连接数据库 SqlConnection coon1 = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123"); //设置数据库中的表格的操作 SqlCommand cmd1 = coon1.CreateCommand(); cmd1.CommandText = "insert into Users values('" + Uname + "','" + Pwd + "','" + Nname + "','" + (Sex ? "1" : "0") + "','" + Birthday + "','" + Nation + "')"; //执行操作 coon1.Open(); cmd1.ExecuteNonQuery(); coon1.Close(); //提示是否添加成功 Console.WriteLine("您已添加成功,请单击刷新信息表!"); break; } //修改信息 else if (n == "2") { Console.Write("请输入要修改的用户名:"); string Uname = Console.ReadLine(); Console.Write("请输入修改后的密码:"); string Pwd = Console.ReadLine(); Console.Write("请输入修改后的性别:"); string Sex = Console.ReadLine(); //1、连接数据库 SqlConnection conn2 = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;");//编写连接字符串 //2、设置修改内容的操作 SqlCommand cmd2 = conn2.CreateCommand(); cmd2.CommandText = "update Users set [password]='" + Pwd + "',sex='" + Sex + "' where username='" + Uname + "';"; //3、执行操作 conn2.Open(); cmd2.ExecuteNonQuery(); conn2.Close(); //4、提示一下是否修改完成 Console.WriteLine("您已修改完成,请单击刷新信息表"); } //删除信息 else if (n == "3") { Console.Write("请输入要删除的用户名:"); string Uname = Console.ReadLine(); //1、连接数据库 SqlConnection conn3 = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123"); //2、设置要对数据库中的表进行的操作内容 SqlCommand cmd3 = conn3.CreateCommand(); cmd3.CommandText = "delete from Users where username='" + Uname + "'"; //3、执行操作 conn3.Open();//打开通道 cmd3.ExecuteNonQuery();//执行操作 conn3.Close();//关闭通道,通道只有一个,每次用完都要关闭,要不然下次用连接不上 //提示一下,看是否删除成功,成功则显示提示语句,不成功则不显示,并报错 Console.WriteLine("您已删除成功,请单击刷新信息表!"); } } Console.ReadLine(); } } }
1、添加
2、修改
3、删除