一.创建数据库

create database ADO1
create table Student
(Code nvarchar(200) primary key not null,Name nvarchar(200) not null,Sex bit not null,Birthday datetime not null,SubjectCode nvarchar(200),
)
create table Subject
(SubjectCode nvarchar(200) primary key not null,
SubjectName nvarchar(200) not null,
)
select *from Student
select *from Subject
insert into Student values('S001','张三',1,'1994-1-12','Z001');
insert into Student values('S002','李四',1,'1995-2-22','Z002');
insert into Student values('S003','王五',1,'1996-8-28','Z002');
insert into Student values('S004','小花',0,'1997-3-6','Z003');insert into Subject values('Z001','商务英语');
insert into Subject values('Z002','软件工程');
insert into Subject values('Z003','旅游');
insert into Subject values('Z004','工商管理');

View Code

二.ADO.net

(1)实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication1.App_Code
{public class Subject{private string _SubjectCode;public string SubjectCode{get { return _SubjectCode; }set { _SubjectCode = value; }}private string _SubjectName;public string SubjectName{get { return _SubjectName; }set { _SubjectName = value; }}}
}

View Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication1.App_Code
{public class Student{private string _Code;public string Code{get { return _Code; }set { _Code = value; }}private string _Name;public string Name{get { return _Name; }set { _Name = value; }}private bool _Sex;public bool Sex{get { return _Sex; }set { _Sex = value; }}public string SexDD{get { return _Sex ? "男" : "女"; }}private DateTime _Birthday;public DateTime Birthday{get { return _Birthday; }set { _Birthday = value; }}public string BirthdayDD{get { return _Birthday.ToString("yyyy年MM月dd日"); }}public int Age{get { return DateTime.Now.Year - _Birthday.Year; }}private string _SubjectCode;public string SubjectCode{get { return _SubjectCode; }set { _SubjectCode = value; }}public string SubjectCodeDD{get { return new SubjectData().Subname(_SubjectCode); }}}
}

View Code

(2)数据访问类

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;namespace ConsoleApplication1.App_Code
{public class SubjectData{//专业课程显示汉字名称SqlConnection conn = null;SqlCommand cmd = null;public SubjectData(){conn = new SqlConnection("server=.;database=ADO1;user=sa;pwd=123;");cmd = conn.CreateCommand();}public string Subname(string s){cmd.CommandText = "select*from Subject where SubjectCode=@a; ";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", s);conn.Open();SqlDataReader dr = cmd.ExecuteReader();dr.Read();String a = dr["SubjectName"].ToString();conn.Close();return a;}}
}

View Code

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;namespace ConsoleApplication1.App_Code
{public class StudentData{//关联数据库SqlConnection conn = null;SqlCommand cmd = null;public StudentData(){conn = new SqlConnection("server=.;database=ADO1;user=sa;pwd=123;");cmd = conn.CreateCommand();}//查询表中所有数据public List<Student> SeleAll(){List<Student> ls = new List<Student>();cmd.CommandText = "select*from Student";conn.Open();SqlDataReader dr = cmd.ExecuteReader();while (dr.Read()){Student s = new Student();s.Code = dr["Code"].ToString();s.Name = dr["Name"].ToString();s.Sex = Convert.ToBoolean(dr["Sex"]);s.Birthday = Convert.ToDateTime(dr["Birthday"]);s.SubjectCode = dr["SubjectCode"].ToString();ls.Add(s);}conn.Close();return ls;}//查询学生个数public int SeleCout(){int a;cmd.CommandText = "select count(*) from Student";conn.Open();SqlDataReader dr = cmd.ExecuteReader();dr.Read();if (dr[0].ToString() != ""){a = Convert.ToInt32(dr[0]);}else{a = 0;}conn.Close();return a;}//对学生编号进行自动排序public void CodeAsc(int c){string Code = null;int count = c;conn.Open();for (int a = 0; a < count; a++){Code = "S" + (a + 1).ToString("000");cmd.CommandText = "update Student set Code='" + Code + "'where Name=(select top 1 Name from student where Name not in(select top " + a + " Name from student) );";cmd.ExecuteNonQuery();}conn.Close();}//性别转换boolpublic bool Sxb(string a){bool b = false;if (a == "男"){return b = true;}else{return b;}}//学生专业查询public string SeleSub(string a){a = "%" + a + "%";cmd.CommandText = "select SubjectCode from Subject where SubjectName like @a";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", a);conn.Open();SqlDataReader dr = cmd.ExecuteReader();dr.Read();if (dr[0].ToString() != ""){a = (dr["SubjectCode"]).ToString();}else{a = "";}conn.Close();return a;}//添加学生数据public int StuAdd(Student a){cmd.CommandText = "insert into Student values(@a,@b,@c,@d,@e)";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", a.Code);cmd.Parameters.AddWithValue("@b", a.Name);cmd.Parameters.AddWithValue("@c", a.Sex);cmd.Parameters.AddWithValue("@d", a.Birthday);cmd.Parameters.AddWithValue("@e", a.SubjectCode);conn.Open();int b = cmd.ExecuteNonQuery();conn.Close();return b;}//查询有无该学生public bool SeleStu(string a){bool b = false;cmd.CommandText = "select Name from Student where Code=@a";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", a);conn.Open();SqlDataReader dr = cmd.ExecuteReader();if (dr.Read()){ b = true; }conn.Close();return b;}//查询该学生信息public Student SeleStux(string a){List<Student> ls = new List<Student>();cmd.CommandText = "select*from Student where Code=@a";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", a);conn.Open();SqlDataReader dr = cmd.ExecuteReader();Student s = new Student();while (dr.Read()){s.Code = dr["Code"].ToString();s.Name = dr["Name"].ToString();s.Sex = Convert.ToBoolean(dr["Sex"]);s.Birthday = Convert.ToDateTime(dr["Birthday"]);s.SubjectCode = dr["SubjectCode"].ToString();}conn.Close();return s;}//修改学生信息public int StuCha(Student a){cmd.CommandText = "update Student set Name=@a,Sex=@b,Birthday=@c,SubjectCode=@d where Code=@e";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", a.Name);cmd.Parameters.AddWithValue("@b", a.Sex);cmd.Parameters.AddWithValue("@c", a.Birthday);cmd.Parameters.AddWithValue("@d", a.SubjectCode);cmd.Parameters.AddWithValue("@e", a.Code);conn.Open();int b = cmd.ExecuteNonQuery();conn.Close();return b;}//删除学生信息public int StuDel(string a){cmd.CommandText = "delete from Student where Code=@a";cmd.Parameters.Clear();cmd.Parameters.AddWithValue("@a", a);conn.Open();int b = cmd.ExecuteNonQuery();conn.Close();return b;}}
}

View Code

(3)主页面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConsoleApplication1.App_Code;
namespace ConsoleApplication1
{class Program{static void Main(string[] args){string xianshi = "";while (true){Console.Clear();if (xianshi != ""){Console.WriteLine(xianshi);}//查询学生个数int count = new StudentData().SeleCout();//调用code排序生成编号new StudentData().CodeAsc(count);//Student表中数据展示Console.WriteLine("编号" + "\t" + "姓名" + "\t" + "性别" + "\t" + "年龄" + "\t" + "生日" + "\t" + "专业");List<Student> al = new StudentData().SeleAll();foreach (Student s in al){Console.WriteLine(s.Code + "\t" + s.Name + "\t" + s.SexDD + "\t" + s.Age + "\t" + s.BirthdayDD + "\t" + s.SubjectCodeDD);}//学生平均年龄decimal ageall = 0;foreach (Student a in al){ageall = ageall + a.Age;}Console.WriteLine("统计:总人数为" + count + "人,平均年龄为" + (ageall / count).ToString("00.00") + "岁。");//提示继续操作while (true){Console.Write("请输入您要继续的操作(输入数字1为新增,输入数字2为修改,输入数字3为删除):");string uu = Console.ReadLine();//如果选择新增#regionif (uu == "1"){//实例化一个学生数据                      Student ut = new Student();ut.Code = "S" + (count + 1).ToString("000");Console.WriteLine("学生编号(自动生成):" + ut.Code);//判断学生姓名不能为空while (true){Console.Write("请输入学生姓名:");string n = Console.ReadLine();if (n != ""){ut.Name = n;break;}else{Console.Write("学生姓名不能为空,");}}//学生性别string us;while (true){Console.Write("请输入学生性别:");us = Console.ReadLine();if (us == "男" || us == "女"){ut.Sex = new StudentData().Sxb(us);break;}else{Console.Write("请输入正确的性别(男/女),");}}//学生生日while (true){Console.Write("请输入学生生日:");string ub = Console.ReadLine();try{ut.Birthday = DateTime.Parse(ub);break;}catch{Console.Write("请输入正确的生日格式(1990,1,1),");}}//学生专业while (true){Console.Write("请输入学生专业:");string sz = new StudentData().SeleSub(Console.ReadLine());if (sz != ""){ut.SubjectCode = sz;Console.WriteLine("已查询到该专业,专业名称为:" + new SubjectData().Subname(ut.SubjectCode) + ",专业编号为:" + ut.SubjectCode + "");break;}else{Console.Write("没有此专业,");}}//展示用户要输入的学生信息Console.WriteLine("新增学生信息为:学生编号[" + ut.Code + "],学生姓名[" + ut.Name + "],学生性别[" + us + "],学生生日[" + ut.BirthdayDD + "],学生专业[" + new SubjectData().Subname(ut.SubjectCode) + "]");while (true){Console.WriteLine("以上为新增学生的信息,是否确定添加?(Y/N):");string xx = Console.ReadLine();if (xx == "Y"){int row = new StudentData().StuAdd(ut);if (row > 0){xianshi = "数据添加成功!";break;}}else if (xx == "N"){xianshi = "已取消数据添加!";break;}else{Console.Write("请输入正确的操作信息,");}}if (xianshi != ""){ break; }}#endregion//如果选择修改#regionelse if (uu == "2"){Console.Write("请输入要修改的学生编号:");//查询是否存在该学生string cx = Console.ReadLine();bool dd = new StudentData().SeleStu(cx);if (dd ){//查询该学生的所有信息Student ss = new StudentData().SeleStux(cx);Student ss1 = new Student();ss1.Code = cx;Console.WriteLine(cx + "学生的当前姓名是:" + ss.Name);//判断学生姓名不能为空while (true){Console.Write("请输入您的修改:");string n = Console.ReadLine();if (n != ""){ss1.Name = n;break;}else{Console.Write("学生姓名不能为空,");}}Console.WriteLine(cx + "学生的当前性别是:" + ss.SexDD);//判断学生性别 string us;while (true){Console.Write("请输入您的修改:");us = Console.ReadLine();if (us == "男" || us == "女"){ss1.Sex = new StudentData().Sxb(us);break;}else{Console.Write("请输入正确的性别(男/女),");}}Console.WriteLine(cx + "学生的当前生日是:" + ss.BirthdayDD);//判断学生生日while (true){Console.Write("请输入您的修改:");string ub = Console.ReadLine();try{ss1.Birthday = DateTime.Parse(ub);break;}catch{Console.Write("请输入正确的生日格式(1990,1,1),");}}Console.WriteLine(cx + "学生的当前专业是:" + new SubjectData().Subname(ss.SubjectCode));//判断学生专业while (true){Console.Write("请输入学生专业:");string sz = new StudentData().SeleSub(Console.ReadLine());if (sz != ""){ss1.SubjectCode = sz;break;}else{Console.Write("没有此专业,");}}//询问是否添加Console.WriteLine("修改学生信息为:学生编号[" + ss1.Code + "],学生姓名[" + ss1.Name + "],学生性别[" + us + "],学生生日[" + ss1.BirthdayDD + "],学生专业[" + new SubjectData().Subname(ss1.SubjectCode) + "]");while (true){Console.WriteLine("以上为修改学生的信息,是否确定修改?(Y/N):");string xx = Console.ReadLine();if (xx == "Y"){int row = new StudentData().StuCha(ss1);if (row > 0){xianshi = "数据修改成功!";break;}}else if (xx == "N"){xianshi = "已取消数据修改!";break;}else{Console.Write("请输入正确的操作信息,");}}}else{Console.Write("该学生编号不存在,");}if (xianshi != ""){ break; }}#endregion//若果选择删除#regionelse if (uu == "3"){Console.Write("请输入要删除学生信息的学生编号:");//判断有无该学生编号string cx = Console.ReadLine();bool dd = new StudentData().SeleStu(cx);if (dd){//查询该学生的所有信息Student ss = new StudentData().SeleStux(cx);Console.WriteLine("删除学生信息为:学生编号[" + ss.Code + "],学生姓名[" + ss.Name + "],学生性别[" + ss.SexDD + "],学生生日[" + ss.BirthdayDD + "],学生专业[" + new SubjectData().Subname(ss.SubjectCode) + "]");while (true){Console.WriteLine("以上为删除学生的信息,是否确定删除?(Y/N):");string xx = Console.ReadLine();if (xx == "Y"){int row = new StudentData().StuDel(ss.Code);if (row > 0){xianshi = "数据删除成功!";break;}}else if (xx == "N"){xianshi = "已取消数据删除!";break;}else{Console.Write("请输入正确的操作信息,");}}}else{Console.Write("不存在该学生编号,");}if (xianshi != ""){ break; }}#endregionelse{Console.WriteLine("输入有误!");}}}}}}

View Code

三.题目要求

 

第一部分:

新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本。

学生表Student:

编号(Code):nvarchar类型,不能为空,主键

姓名(Name):nvarchar类型,不能为空

性别(Sex):bit类型,不能为空,true为男,false为女

生日(Birthday):datetime类型,不能为空

专业编号(SubjectCode):nvarchar类型,可以为空

Code(主键)

Name

Sex

Birthday

SubjectCode

S001

张三

true

1994/1/12

Z001

S002

李四

true

1995/2/22

Z002

S003

王五

true

1996/8/28

Z002

S004

小花

false

1997/3/6

Z003

专业表Subject:

专业编号(SubjectCode):nvarchar类型,不能为空,主键

专业名称(SubjectName):nvarchar类型,不能为空

SubjectCode(主键)

SubjectName

Z001

商务英语

Z002

软件工程

Z003

旅游

Z004

工商管理

第二部分:

新建一个控制台应用程序:

一、数据显示:

将Student表数据查询显示,显示格式为:

编号   姓名   性别   年龄         生日            专业

001   张三    男     22   1994年1月12日     商务英语

……

……

统计:总人数为xx人,平均年龄为xx岁。

性别显示为男/女(true为男,false为女),自动计算出年龄,生日显示为“XXXX年XX月XX日”,专业显示专业编号对应的专业名称,注意最后一行的统计内容要显示完整。

二、功能操作:

在上面的基础上增加功能,表数据显示完毕后,提示用户可以继续操作:

“请输入您要继续的操作(输入数字1为新增,输入数字2为修改,输入数字3为删除):”,输入其它内容提示输入有误,并回到上面继续等待用户操作。

三、新增:

当用户输入1并回车后,按照顺序让用户分别输入:学生编号,学生姓名,性别,生日,专业等内容,格式为:

学生编号(自动生成):S001

请输入学生姓名(不能为空):

请输入学生性别(男/女):

请输入学生生日(如:2000/12/12):

请输入专业:

每次输入都需要做以下判断,如果输入不正确,则提示输入有误,并让用户重新输入:

1、学生编号不允许重复

2、学生姓名不能为空

3、性别只能输入男/女,并自动转换为true/false

4、生日格式是否是正确

5、专业需要用户输入中文,如:当用户输入“商务英语”或“英语”,自动查到“Z001”专业编号,如果查不到则提示“没有此专业”

当以上内容全部填写完毕并无误后,将此学生信息打印显示出来,并询问用户“以上为新增学生的信息,是否确定添加?(Y/N):”,当用户输入Y确定添加后,才进行添加,如果添加成功,则将控制台程序清空,并刷新显示最新的Student表数据,提示添加成功,并继续回到“二”等待用户继续操作。

四、修改:

当用户输入2并回车时,提示用户输入需要更改的学生编号,如果有此学生,那么除学生编号外,其余的内容全部进行修改,格式为:

S001学生当前姓名为:张三

请输入您的修改:

S001学生当前的性别为:男

请输入您的修改:

……

每次修改后都需要与新增时一样的判断,当全部内容都修改完毕后,将修改后的学生信息打印显示出来,并询问“以上为修改后的学生信息,是否确定修改?(Y/N):”,当用户输入Y并回车才真正确定修改,并提示修改是否成功,如果修改成功,则清空控制台内容,刷新显示最新的Student表数据,并提示修改成功,继续回到“二”等待用户继续操作。

五、删除:

当用户输入3并回车时,提示用户输入需要删除的学生编号,如果有此学生,那么将此学生的信息展示出来,并提示“是否要删除此学生的信息?(Y/N)”,当用户输入Y确定删除后,才进行删除,并提示删除是否成功,如果删除成功,则清空控制台内容,刷新显示最新的Student表数据,并提示删除成功,继续回到“二”等待用户继续操作。

转载于:https://www.cnblogs.com/zhangxin4477/p/6751788.html

ADO.net商机题目相关推荐

  1. 国开电大 创业教育 形考任务作业1-4

    国开电大 创业教育 形考任务作业1 题目1 创业是一种( )活动 选择一项: A. 社会经济 B. 思想 C. 创新 D. 体力 题目2 团队真正的价值表现为( ) 选择一项: A. 取长补短 B. ...

  2. C/C++ 笔试、面试题目大汇总

    C/C++ 笔试.面试题目大汇总 这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 1.求下面函数的返回值( ...

  3. 看到了商机,为什么赚不到钱?

    什么是商机? 其实大部分情况下,就是信息不对称. 你知道产品的生产成本,知道零售价格,知道巨大的差价和中间商利润,这是一个信息不对称. 你知道某些供货商和厂商手里压着很多库存卖不掉,知道某些流量平台变 ...

  4. ASP.NET面试题目大全(非常经典、吐血推荐)

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private :   私有成员, 在类的内部才可以访问. protected : 保 ...

  5. 【渝粤题库】国家开放大学2021春2175市场营销学题目

    试卷代号:2175 2021年春季学期期末统一考试 市场营销学 试题 2021年7月 注意事项 一.将你的学号.姓名及分校(工作站)名称填写在答题纸的规定栏内.考试结束后,把试卷和答题纸放在桌上.试卷 ...

  6. ado.not--综合练习

    题目: 第一部分: 新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本. 专业表Subject: 专业编号(SubjectCode):nvarchar类型,不能为空,主 ...

  7. 46家中外知名企业笔试面试题目

    http://blog.sina.com.cn/s/blog_4897add3010009wj.html 微软 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确 定 ...

  8. 46家中外知名企业面试题目

    46家中外知名企业面试题目    <script src="http://blog.csdn.net/count.aspx?ID=1404124&Type=Rank" ...

  9. 中航一院c语言笔试题目,C笔试题目汇总

    C笔试题目汇总 发布时间:2021-03-19 C语言描述问题比汇编语言迅速,工作量小.可读性好,易于调试.修改和移植,而代码质量与汇编语言相当.C语言一般只比汇编程序生成的目标代码效率低10%-20 ...

最新文章

  1. 从源码角度来读Handler
  2. XamarinSQLite教程创建数据表
  3. 装饰器,闭包,高阶函数,嵌套函数
  4. 第四天:规划范围管理
  5. 使用Spring AOP中MethodInterceptor记录日志
  6. 前端开发总结--之关于FusionSphere WEBUI的想法
  7. 面向对象之继承与派生
  8. (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算
  9. shiro利用mysql动态授权_SpringBoot+Shiro学习之数据库动态权限管理和Redis缓存
  10. Johnson法则-流水作业调度-动态规划
  11. matlab求hurst,请问如何用MATLAB计算大盘的HURST
  12. java吸_结对编程(java)
  13. JQuery插件validate的Remote使用
  14. A protocol for Dying
  15. 【ARC 123B】Increasing Triples(贪心)
  16. 分享支持一站式查快递单号查询物流信息
  17. Occupancy Flow: 4D Reconstruction by Learning Particle Dynamics(2)
  18. matlab算法实现对等额本息和等额本金两种还款方式的计算
  19. c语言输入学号查找成绩,C语言程序设计按学号查询成绩
  20. 数字图像处理学习笔记(三)——空间分辨率和灰度分辨率、等偏爱曲线

热门文章

  1. 用hutool进行RSA编码及解码
  2. 【代码规范】google开源c\c++项目代码规范
  3. ARM中LDR伪指令与LDR加载指令
  4. 记录 之 tf.data进行数据集处理常用的几个函数介绍
  5. ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
  6. C++中如何初始化类中const或引用类型的数据成员?
  7. mysql的学习笔记
  8. [BUUCTF-pwn]——warmup_csaw_2016
  9. Apache负载均衡+Tomcat集群
  10. 常见的保险种类,险种分类介绍