分享

「笔记」使用ADO.NET访问数据库,进行增删改查

 新用户0935snDB 2022-08-02 发布于河南

数据库访问的方法和技术

ADO.NET的主要组件

文章图片1

DataSet(数据集)是断开式的访问方式,DataSet完全可以在内存里面存放一个类似于数据库这样的结构,在里面进行操作,最终可以保存到我们的数据库中去。

.NET平台数据提供程序,是连接式的方式,就是实时的操作数据库。

文章图片2

操作数据库的话,需要使用NuGet程序包安装相应的Connection对象

文章图片3
文章图片4

为什么要使用Connection对象?

文章图片5

Connection对象

使用之前,需要安装相应的数据库的Connection对象

using System.Data.SqlClient;//sqlserver身份验证登陆//server 服务器 uid 账号 pwd 密码 database 数据库SqlConnection conn = new SqlConnection('server=.;uid=sa;pwd=sa;database=SchoolSystemDB');conn.Open();//打开数据库Console.WriteLine('打开数据库成功');conn.Close();//关闭数据库Console.WriteLine('关闭数据库');

有时候数据库会动态切换,会有很多应用场景,所以一般会使用,使用一个属性ConnectionString即可,上面的是构造方法方式复制,下面这种也可以。

conn.ConnectionString = 'server=.;uid=sa;pwd=sa;database=SchoolSystemDB';

对数据库进行简单地增加删除修改

using System.Data.SqlClient;namespace ADO_NET{ internal class StudentManager { /// <summary> /// 添加 /// </summary> public void Add() { Console.WriteLine('请输入姓名:'); string stuName = Console.ReadLine(); Console.WriteLine('请输入性别:'); string sex = Console.ReadLine(); Console.WriteLine('请输入出生日期'); string birthday = Console.ReadLine(); Console.WriteLine('请输入年级'); string gradeId = Console.ReadLine(); Console.WriteLine('请输入住址:'); string address = Console.ReadLine(); Console.WriteLine('请输入电话:'); string telephone = Console.ReadLine(); //第一步:创建访问数据库的连接对象 SqlConnection conn = new SqlConnection('server=.;uid=sa;pwd=sa;database=SchoolSystemDB'); //第二步:打开数据库 conn.Open(); //第三步:创建一个用于执行脚本的对象 string sql = $@'insert into Students(StuName, Sex, Brithday, GradeId, CreateTime, Address, Telephone) values('{stuName}','{sex}','{birthday}',{gradeId},default,'{address}','{telephone}')'; SqlCommand command = new SqlCommand(sql,conn); //第四步:创建执行脚本对象 int result = command.ExecuteNonQuery();//添加、删除、修改,执行返回影响受影响的条数 //第五步:关闭数据库 conn.Close(); if (result > 0) { Console.WriteLine('添加成功'); } else { Console.WriteLine('添加失败'); } } /// <summary> /// 删除 /// </summary> public void Delete() { Console.WriteLine('请输入需要删除的学生编号:'); string stuNo = Console.ReadLine(); //第一步:创建访问数据库的连接对象 SqlConnection conn = new SqlConnection('server=.;uid=sa;pwd=sa;database=SchoolSystemDB'); //第二步:打开数据库 conn.Open(); //第三步:创建一个用于执行脚本的对象 string sql = $@'delete from students where StuNo={stuNo}'; SqlCommand command = new SqlCommand(sql, conn); //第四步:创建执行脚本对象 int result = command.ExecuteNonQuery();//添加、删除、修改,执行返回影响受影响的条数 //第五步:关闭数据库 conn.Close(); if (result > 0) { Console.WriteLine('删除成功'); } else { Console.WriteLine('删除失败'); } } /// <summary> /// 修改 /// </summary> public void Update() { Console.WriteLine('请输入需要修改的学生编号:'); string stuNo = Console.ReadLine(); Console.WriteLine('请输入修改学生姓名:'); string stuName = Console.ReadLine(); //第一步:创建访问数据库的连接对象 SqlConnection conn = new SqlConnection('server=.;uid=sa;pwd=sa;database=SchoolSystemDB'); //第二步:打开数据库 conn.Open(); //第三步:创建一个用于执行脚本的对象 string sql = $@'update Students set StuName='{stuName}' where StuNo={stuNo}'; SqlCommand command = new SqlCommand(sql, conn); //第四步:创建执行脚本对象 int result = command.ExecuteNonQuery();//添加、删除、修改,执行返回影响受影响的条数 //第五步:关闭数据库 conn.Close(); if (result > 0) { Console.WriteLine('修改成功'); } else { Console.WriteLine('修改失败'); } } }}

查询常见的有两种:

command.ExecuteScalar();一行一列受影响,平时在应用场景的时候,聚合函数、count、avg、sum、max、min

select count(*) as 共计 from Studentswhere GradeId=2--登录用户名是否存在select count(*) from Studentswhere StuName='六耳猕猴'--游戏中有没有用户名被注册select count(stuno) from Studentswhere StuName='张无忌'
public void GetNameByStuNo() { Console.WriteLine('请输入需要查询的学生编号:'); string stuNo = Console.ReadLine(); //第一步:创建访问数据库的连接对象 SqlConnection conn = new SqlConnection('server=.;uid=sa;pwd=sa;database=SchoolSystemDB'); //第二步:打开数据库 conn.Open(); //第三步:创建一个用于执行脚本的对象 string sql = $@'select stuname from Students where stuno={stuNo}'; SqlCommand command = new SqlCommand(sql, conn); //第四步:创建执行脚本对象 object obj = command.ExecuteScalar();//查询返回第一行第一列 //第五步:关闭数据库 conn.Close(); if (obj!=null) { Console.WriteLine($'该学生的姓名:{obj.ToString()}'); } else { Console.WriteLine('找不到该学生信息'); } }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多