【C#】【平时作业】习题-11-ADO.NET

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 【C#】【平时作业】习题-11-ADO.NET

目录

选择题


1.下列ASP.NET语句(B)正确地创建了一个与mySQL数据库和服务器的连接。

A.SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

B.MySqlConnection con1 = new MySqlConnection (“Server=localhost;Database = myDB;Uid=root;Pwd=;”);

C.SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);

D.SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

2.在ADO.NET中,对于MySqlCommand对象的ExecuteNonQuery()方法和MySqlDataAdapter对象的Fill ()方法,下面叙述错误的是(C

A.insert、update、delete等操作的mySql语句主要用ExecuteNonQuery()方法来执行;

B.ExecuteNonQuery()方法返回执行mySql语句所影响的行数。

C.Select操作的mySql语句只能由Fill ()方法来执行;

D.Fill ()方法返回一个DataSet对象;

简述并举例说明


什么是ADO.NET?

在NET编程环境中优先使用的数据访问接口

什么是连接字符串?

连接字符串,是一组被格式化的键值对:

它告诉ADO.NET数据源在哪里

需要什么样的数据格式

提供什么样的访问信任级别

以及其他任何包括连接的相关信息。

connection对象的作用?

Connection(连接对象):与数据源建立连接。

commmand对象的作用?

Command(命令对象):对数据源执行SQL命令并返回结果。

dataAdapter对象的作用?

DataAdapter(适配器对象):对数据源执行操作并返回结果,在DataSet与数据源之间建立通信,将数据源中的数据写入

DataReader对象的作用?

DataReader(数据流对象):取数据源的数据,只允许对将数据源以只读、顺向的方式查看其中所存储的数据。其常用于检索大量数据,DataReader对象还是一种非常节省资源的数据对象

DataSet对象的作用?

DataSet(数据集对象):内存中的数据库,是数据表的集合,它可以包含任意多个数据表。

程序设计

//字段
        private string _account;
        private string _name;
        private string _usertype;
        private string _password;
        private string _vip;
        private string _garde;
        private string _amount;
        private string _age;
        private string _hobby;
        private string _department;
        private const string CONSTR = "Server=127.0.0.1;Database=studentsinfo;UserId=root;Password=qq2686485465;";
//属性
        public string Account { get => _account; set => _account = value; }
        public string Name { get => _name; set => _name = value; }
        public string Usertype { get => _usertype; set => _usertype = value; }
        public string Password { get => _password; set => _password = value; }
        public string Vip { get => _vip; set => _vip = value; }
        public string Garde { get => _garde; set => _garde = value; }
        public string Amount { get => _amount; set => _amount = value; }
        public string Age { get => _age; set => _age = value; }
        public string Hobby { get => _hobby; set => _hobby = value; }
        public string Department { get => _department; set => _department = value; }
  1. 已知本机上的MySql数据库studentsinfo中有学生表.请给HandleStudent类添加成员函数:public bool HandleLogin((string studentAccount, string studentPwd) 该方法可检验学生登录时的信息是否有效。
    提示:学生表中字段类型自定,但需满足数据的合理性。
//验证登录
        /// <summary>
        /// 登录验证
        /// </summary>
        /// <param name="studentAccount">账号</param>
        /// <param name="studentPwd">密码</param>
        /// <returns>Boolean 验证成功返回真,否则返回假</returns>
        public static bool HandleLogin(string studentAccount, string studentPwd)
        {
            //对参数进行处理验证
            if (Equals(studentAccount.Trim(), "") || Equals(studentPwd.Trim(), "")) return false;
            //连接数据库
            MySqlConnection con = HandleConnection();
            //打开数据库
            con.Open();
            //参数化拼接字符串
            string sql = "Select*from students where `account` = @Account AND `password` = @Password";
            //创建命令对象
            MySqlCommand cmd = new MySqlCommand(sql, con);
            //指定参数
            cmd.Parameters.Add(new MySqlParameter("@Account",studentAccount));
            cmd.Parameters.Add(new MySqlParameter("@Password", studentPwd));
            //执行
            MySqlDataReader dr = cmd.ExecuteReader();
            //判断
            if (dr.Read())
            {
                con.Close();
                return true;
            }
            else
            {
                con.Close();
                return false;
            }
        }
  1. 已知本机上的MySql数据库studentsinfo中有学生表students,请给HandleStudent类添加成员函数public static int HandleAddStudents<T>(HandleStudent student) 该方法可添加一位学生的信息到数据表中。
    提示:学生表中字段类型自定,但需满足数据的合理性。
/// <summary>
        /// 根据主键判断 是否存在学生
        /// </summary>
        /// <param name="key"></param>
        /// <returns>boolea 存在返回真,不存在返回假</returns>
        public static bool HandleStudentIsIn(string key) 
        {
            //对参数进行处理验证
            if (Equals(key.Trim(), ""))  return false;
            //连接数据库
            MySqlConnection con = HandleConnection();
            //打开数据库
            con.Open();
            //参数化拼接字符串
            string sql = "Select*from students where `account` = @Account";
            //创建命令对象
            MySqlCommand cmd = new MySqlCommand(sql, con);
            //指定参数
            cmd.Parameters.Add(new MySqlParameter("@Account", key));
            //执行
            MySqlDataReader dr = cmd.ExecuteReader();
            //判断
            if (dr.Read())
            {
                con.Close();
                return true;
            }
            else
            {
                con.Close();
                return false;
            }
        }
/// <summary>
        /// 添加学生
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="student"></param>
        /// <returns>int型 操作影响的行数</returns>
        public static int HandleAddStudents<T>(HandleStudent student) 
        {
            MySqlConnection con = HandleConnection();
            con.Open();
            //判断学生是否存在,信息是否完善
            if (HandleStudentIsIn(student.Account) || Equals(student.Account,"") || Equals(student.Name, "" ) || Equals(student.Password, "") || Equals(student.Usertype, "")) return 0;
            //添加学生信息
            string sql = "INSERT INTO students(`account`,`name`,`usertype`,`password`,`vip`,`garde`,`amount`,`age`,`hobby`,`department`)" +
                "VALUES" +
                "(@Account,@Name,@UserType,@Password,1,0,0,0,'IT','OMTPC')";
            MySqlCommand cmd = new MySqlCommand(sql, con);
            cmd.Parameters.Add(new MySqlParameter("@Account",student.Account));
            cmd.Parameters.Add(new MySqlParameter("@Name", student.Name));
            cmd.Parameters.Add(new MySqlParameter("@UserType", student.Usertype));
            cmd.Parameters.Add(new MySqlParameter("@Password", student.Password));
            int rows = cmd.ExecuteNonQuery();
            con.Close();
            return rows;
        }

项目完整代码


q2.png

q1.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
33 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
|
16天前
|
开发框架 前端开发 调度
C#基于Quartz.NET实现任务调度并部署Windows服务
C#基于Quartz.NET实现任务调度并部署Windows服务
|
21天前
|
Java C# 数据安全/隐私保护
|
28天前
|
Cloud Native API C#
C#的现代化:.NET Core引领的技术革命
【6月更文挑战第9天】`.NET Core引领C#现代化,实现跨平台革命,提升性能并支持云原生应用。异步编程模型优化体验,统一API简化开发流程。C#应用场景扩展,开发效率提高,技术创新加速,预示其未来在技术领域将持续发挥关键作用。`
30 10
|
26天前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
413 3
|
1月前
|
XML 开发框架 .NET
【.NET Core】常见C#代码约定
【.NET Core】常见C#代码约定
21 5
|
9天前
|
开发框架 .NET Nacos
使用 Nacos 在 C# (.NET Core) 应用程序中实现高效配置管理和服务发现
使用 Nacos 在 C# (.NET Core) 应用程序中实现高效配置管理和服务发现
20 0
|
1月前
|
前端开发 Java C#
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
|
10天前
|
存储 IDE C#
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
29 0
|
1月前
|
XML 开发框架 人工智能
C#/.NET/.NET Core拾遗补漏合集(24年5月更新)
C#/.NET/.NET Core拾遗补漏合集(24年5月更新)