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

数据库访问的方法和技术

ADO.NET的主要组件


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

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

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


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

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

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

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

为什么要使用Connection对象?


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

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
    {
        /// 
        /// 添加
        /// 
        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("添加失败");
            }
        }
        /// 
        /// 删除
        /// 
        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("删除失败");
            }
        }
        /// 
        /// 修改
        /// 
        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 Students
where GradeId=2
--登录用户名是否存在
select count(*) from Students
where StuName='六耳猕猴'
--游戏中有没有用户名被注册
select count(stuno) from Students
where 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(#34;该学生的姓名:{obj.ToString()}");
            }
            else
            {
                Console.WriteLine("找不到该学生信息");
            }
        }
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章