ADO.NET完整的增、删、改、查

一、简介 

1、ado.net是一门数据库访问技术。

2、类库

Connection 类(数据库连接类)

和数据库交互,必须连接它。连接帮助指明 数据库服务器、数据库名字、用户名、密码,和连接数据库所需要的其它参数。 Connection对象会被Command对象使用,这样就能够知道是在哪个数据源上面执行命令。

 

与数据库交互的过程意味着必须指明想要执行的操作。这是依靠 Command对象执行的。开发人员使用Command对象来发送SQL语句给数据库。Command对象使用Connection对象来指出与哪个数据源进行连接。开发人员能够单独使用Command对象来直接执行命令,或者将一个Command对象的引用传递给DataAdapter,它保存了一组能够操作下面描述的一组数据的命令

Command对象(数据库操作类)

成功与数据建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令;Command对象常用的方法有ExecuteReader()方法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入数据可用ExecuteNonQuery()方法来执行插入命令。

DataReader类(数据读取类)

许多数据操作要求开发人员只是读取一串数据。DataReader对象允许开发人员获得从Command对象的SELECT语句得到的结果。考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前”的 数据流。这意味着开发人员只能按照一定的顺序从数据流中取出数据。这对于速度来说是有好处的,但是如果开发人员需要操作数据,更好的办法是使用DataSet。
二、建立与数据库的连接
 
1、格式
 
先引用命名空间using System.Data.SqlClient;

             //连接字符串。服务器:本地;数据库:Data0216;用户:sa;密码:123 

              string sql = "server=.;database=Data0216;user=sa;pwd=123;";

            //数据库连接类 SqlConnection conn = new SqlConnection(sql);

            //数据库操作类 SqlCommand cmd = conn.CreateCommand();

            //编写Tsql语句 cmd.CommandText = "insert into Users values('tianqi','1234','王三,'1','2003-2-1','N003')";

            //打开数据库 conn.Open();

            //执行操作 cmd.ExecuteNonQuery();

            //关闭数据库 conn.Close();

三、完整的数据查询,打印出来。
复制代码
using System;
using System.Collections.Generic;
using System.Linq; using System.Text; using System.Data.SqlClient; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //连接字符串。服务器:本地;数据库:Data0216;用户:sa;密码:123 string sql = "server=.;database=Data0216;user=sa;pwd=123;"; //数据库连接类 SqlConnection conn = new SqlConnection(sql); //数据库操作类 SqlCommand cmd = conn.CreateCommand(); //编写Tsql语句 cmd.CommandText = "select *from Users"; //打开数据库  conn.Open(); //执行操作用SqlDataReader类dr接收一下 SqlDataReader dr = cmd.ExecuteReader(); int count = 0; //判断查询结果是否有行(是否有数据) if (dr.HasRows) { //dr.Read();读取下一行数据,如果有返还true,如果没有返回false。用一个死循环来打印数据,如果读取不到下一行的数据则循环结束。 while (dr.Read()) { count++; //将读取到该行数据的Ids列提取出来放到字符串ids中 string ids = dr["Ids"].ToString(); string username = dr["UserName"].ToString(); string password = dr["PassWord"].ToString(); string nickname = dr["NickName"].ToString(); string sex = dr["Sex"].ToString(); string birthday = dr["Birthday"].ToString(); string nation = dr["Nation"].ToString(); Console.WriteLine(ids + " | " + username + " | " + password + " | " + nickname + " | " + sex + " | " + birthday + " | " + nation); } } Console.WriteLine("一共有" + count + "行数据"); //关闭数据库  conn.Close(); Console.ReadLine(); } } }
复制代码

四、完整的数据删除,将数据删除成功与否返回给用户

复制代码
using System;
using System.Collections.Generic;
using System.Linq; using System.Text; using System.Data.SqlClient; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { string sql = "server=.;database=Data0216;user=sa;pwd=123;"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "delete from Users where UserName='zhangsan';"; conn.Open(); //执行操作,将受影响行数返回一个int类型接受一下 int a = cmd.ExecuteNonQuery(); //如果受影响行数大于0,则删除成功,否则删除失败 if (a > 0) Console.WriteLine("删除成功,本次共删除" + a + ""); else Console.WriteLine("删除失败,本次未删除任何数据!"); conn.Close(); Console.ReadLine(); } } }
复制代码

 

五、完整的数据修改,先查询数据库中有没有用户要修改的数据。
复制代码
using System;
using System.Collections.Generic;
using System.Linq; using System.Text; using System.Data.SqlClient; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { bool has = false; string sql = "server=.;database=Data0216;user=sa;pwd=123;"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); Console.Write("请输入要修改的用户名:"); string name = Console.ReadLine(); //先查询一下数据库中是否有用户要修改的这条数据 cmd.CommandText = "select * from users where username='"+name+"'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); //如果数据库中有用户要修改的这条数据,给has一个true值 if (dr.HasRows) { has = true; } conn.Close(); //如果数据库中有用户要删除的这条数据,再提示用户要修改的内容 if (has == true) { Console.WriteLine("已查到此用户"); Console.Write("请输入修改后的密码:"); string password = Console.ReadLine(); Console.Write("请输入修改后的昵称:"); string nickname = Console.ReadLine(); Console.Write("请输入修改后的性别:"); string sex = Console.ReadLine(); Console.Write("请输入修改后的生日:"); string birthday = Console.ReadLine(); Console.Write("请输入修改后的民族:"); string nation = Console.ReadLine(); //修改数据的sql语句 cmd.CommandText = "update Users set PassWord='"+password+"',NickName='"+nickname+"',Sex='"+sex+"',Birthday='"+birthday+"',Nation='"+nation+"' where UserName='"+name+"'"; //再次打开数据库  conn.Open(); //用aaa记一下受影响行数 int aaa= cmd.ExecuteNonQuery(); //关闭数据库  conn.Close(); if (aaa > 0) Console.WriteLine("修改成功"); else Console.WriteLine("修改失败"); } //如果查询不到用户要修改的数据,提示用户无法修改。 else Console.WriteLine("未查到此用户,无法修改"); Console.ReadLine(); } } }
复制代码

 

六、完整的数据添加

复制代码
using System;
using System.Collections.Generic;
using System.Linq; using System.Text; using System.Data.SqlClient; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { string name = ""; string password = ""; string nickname = ""; string sex = ""; string birthday = ""; string nationcode = ""; string sql = "server=.;database=Data0216;user=sa;pwd=123;"; SqlConnection conn = new SqlConnection(sql); SqlCommand cmd = conn.CreateCommand(); //判断用户名是否被占用且不能为空,如果未被占用且不为空将用户输入的用户名放在name中,跳出循环 while (true) { Console.Write("请输入用户名:"); name = Console.ReadLine(); cmd.CommandText = "select *from Users where UserName='" + name + "'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (!dr.Read() && name.Length != 0) { conn.Close(); break; } } //判断密码是否大于6位 while (true) { Console.Write("请输入密码:"); password = Console.ReadLine(); if (password.Length >= 6) { break; } } //判断昵称是否为空 while (true) { Console.Write("请输入昵称:"); nickname = Console.ReadLine(); if (nickname.Length > 0) { break; } } //判断性别输入,输入男将1记录到数据库中,输入女将0记录到数据库中 while (true) { Console.Write("请输入性别(男/女):"); sex = Console.ReadLine(); if (sex == "" || sex == "") { if (sex == "") sex = "1"; else sex = "0"; break; } else Console.WriteLine("输入的格式不正确,请重新输入"); } //判断输入的生日格式是否正确 while (true) { Console.Write("请输入生日:"); birthday = Console.ReadLine(); try { Convert.ToDateTime(birthday); break; } catch { Console.WriteLine("输入的格式不正确,请重新输入"); } } //判断输入的民族在该数据库中是否有此记录 while (true) { Console.Write("请输入民族:"); string nation = Console.ReadLine(); //从民族表中查询用户输入的民族对应的民族编号 cmd.CommandText = "select NationCode from UserNation where NationName='" + nation + "'"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); //如果查询到该记录,则把民族编号提取出来,关闭数据库并跳出循环 if (dr.Read()) { nationcode = dr["NationCode"].ToString(); conn.Close(); break; } //如果查询不到该记录,提示一下用户,关闭数据库,继续循环。 else { conn.Close(); Console.WriteLine("记录暂无此民族,请输入其他民族"); } } //添加数据的sql语句 cmd.CommandText = "insert into Users values('" + name + "','" + password + "','" + nickname + "','" + sex + "','" + birthday + "','" + nationcode + "')"; conn.Open(); int a = cmd.ExecuteNonQuery(); if (a == 1) Console.WriteLine("数据已经添加进去"); else Console.WriteLine("该条数据未添加进去!"); conn.Close(); Console.ReadLine(); } } }

 

 

转载于:https://www.cnblogs.com/zhulijun/p/6758074.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值