欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

ADO.net商机题目

发布时间:2024/4/17 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ADO.net商机题目 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一.创建数据库

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

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的ADO.net商机题目的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。