• 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();
            }
            //性别转换bool
            public 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("编号" + "	" + "姓名" + "	" + "性别" + "	" + "年龄" + "	" + "生日" + "	" + "专业");
                    List<Student> al = new StudentData().SeleAll();
                    foreach (Student s in al)
                    {
                        Console.WriteLine(s.Code + "	" + s.Name + "	" + s.SexDD + "	" + s.Age + "	" + s.BirthdayDD + "	" + 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();
                        //如果选择新增
                        #region
                        if (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
                        //如果选择修改
                        #region
                        else 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
                        //若果选择删除
                        #region
                        else 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; }
                        }
                        #endregion
                        else
                        {
                            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表数据,并提示删除成功,继续回到“二”等待用户继续操作。

  • 相关阅读:
    ubuntu装openssh-client和openssh-server
    路由器开源系统openwrt配置页面定制
    linux 串口接收
    SHA算法
    密码学Hash函数
    椭圆曲线加密
    ElGamal密码
    Diffie-Hellman密钥交换
    RSA加密
    公钥密码学
  • 原文地址:https://www.cnblogs.com/zhangxin4477/p/6751788.html
Copyright © 2020-2023  润新知