zoukankan      html  css  js  c++  java
  • ADO.NET测试题

    第一部分:

    新建一个数据库: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并回车后,按照顺序让用户分别输入:学生编号,学生姓名,性别,生日,专业等内容,格式为:

    请输入学生编号:

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

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

    请输入学生生日(如: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表数据,并提示删除成功,继续回到“二”等待用户继续操作。

    数据库内容:

     实体类:Student.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    
    namespace ADONET测试.App_Code
    {
        public class Student
        {
            //连接数据库
            SqlConnection conn = null;
            SqlCommand comm = null;
            public Student()
            {
                conn = new SqlConnection("server=.;database=ADO;user=sa;pwd=123");
                comm = conn.CreateCommand();
            }
    
    
            private string _Code;
            /// <summary>
            /// 学生编号
            /// </summary>
            public string Code
            {
                get { return _Code; }
                set { _Code = value; }
            }
            private string _Name;
            /// <summary>
            /// 学生姓名
            /// </summary>
            public string Name
            {
                get { return _Name; }
                set { _Name = value; }
            }
            private bool _Sex;
            /// <summary>
            /// 学生性别
            /// </summary>
            public bool Sex
            {
                get { return _Sex; }
                set { _Sex = value; }
            }
            /// <summary>
            /// 学生性别扩展属性
            /// </summary>
            public string SexStr
            {
                get
                {
                    return _Sex ? "" : "";
                }
            }
    
            private DateTime _Birthday;
            /// <summary>
            /// 生日
            /// </summary>
            public DateTime Birthday
            {
                get { return _Birthday; }
                set { _Birthday = value; }
            }
            /// <summary>
            /// 生日扩展属性
            /// </summary>
            public string BirthdayStr
            {
                get
                {
                    return _Birthday.ToString("yyyy年MM月dd日");
                }
            }
            /// <summary>
            /// 年龄-生日扩展属性
            /// </summary>
            public int Age
            {
                get
                {
                    int dt1 = DateTime.Now.Year;
                    int dt2 = DateTime.Parse(_Birthday.ToString()).Year;
                    return dt1 - dt2;
                }
            }
    
            /// <summary>
            /// 科目编号
            /// </summary>
            private string _SubjectCode;
    
            public string SubjectCode
            {
                get { return _SubjectCode; }
                set { _SubjectCode = value; }
            }
            /// <summary>
            /// 科目名称
            /// </summary>
            public string SubjectName
            {
                get
                {
                    string end = "未填写";
                    comm.CommandText = "select *from Subject where SubjectCode=@a";
                    comm.Parameters.Clear();
                    comm.Parameters.AddWithValue("@a",_SubjectCode);
                    conn.Open();
                    SqlDataReader dr = comm.ExecuteReader();
                    if (dr.HasRows)
                    {
                        dr.Read();
                        end = dr["SubjectName"].ToString();
                    }
                    conn.Close();
                    return end;
                }
            }
        }
    
    }
    View Code

    数据访问类:StudentData.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    
    namespace ADONET测试.App_Code
    {
        public class StudentData
        {
            //连接数据库
            SqlConnection conn = null;
            SqlCommand comm = null;
            public StudentData()
            {
                conn = new SqlConnection("server=.;database=ADO;user=sa;pwd=123");
                comm = conn.CreateCommand();
            }
            //查询
    
            //查询所有学生的数据
            public List<Student> Select()
            {
                List<Student> slist = new List<Student>();
                comm.CommandText = "select *from Student";
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        Student st = new Student();
                        st.Code = dr["Code"].ToString();
                        st.Name = dr["Name"].ToString();
                        st.Sex = Convert.ToBoolean(dr["Sex"]);
                        st.Birthday = Convert.ToDateTime(dr["Birthday"]);
                        st.SubjectCode = dr["SubjectCode"].ToString();
                        slist.Add(st);
    
                    }
                }
                conn.Close();
                return slist;
            }
    
            //根据学生编号查询某个学生的数据
            public List<Student> Select1(string code)
            {
                List<Student> slist = new List<Student>();
                comm.CommandText = "select *from Student where Code=@a";
                comm.Parameters.Clear();
                comm.Parameters.AddWithValue("@a", code);
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        Student st = new Student();
                        st.Code = dr["Code"].ToString();
                        st.Name = dr["Name"].ToString();
                        st.Sex = Convert.ToBoolean(dr["Sex"]);
                        st.Birthday = Convert.ToDateTime(dr["Birthday"]);
                        st.SubjectCode = dr["SubjectCode"].ToString();
                        slist.Add(st);
    
                    }
                }
                conn.Close();
                return slist;
            }
            //根据编号查询判断某个学生在数据库中是否存在,存在返回true,不存在返回false
            public bool Select(string code)
            {
                bool has = false;
                comm.CommandText = "select *from Student where code=@a";
                comm.Parameters.Clear();
                comm.Parameters.AddWithValue("@a", code);
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader();
                if (dr.HasRows)
                {
                    has = true;
                }
                conn.Close();
                return has;
            }
    
            //科目名称模糊查询,判断该科目是否存在,存在返回true,不存在返回false
            public bool select1(string suname)
            {
                bool has = false;
                Student st = new Student();
                comm.CommandText = "select SubjectCode from Subject where SubjectName like '%" + suname + "%'";
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader();
                if (dr.HasRows)
                {
                    has = true;
                }
                conn.Close();
                return has;
            }
            //科目名称模糊查询,获取对应的科目编号
            public Student select(string suname)
            {
                Student st = new Student();
                comm.CommandText = "select SubjectCode from Subject where SubjectName like '%" + suname + "%'";
                conn.Open();
                SqlDataReader dr = comm.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
    
                        st.SubjectCode = dr["SubjectCode"].ToString();
    
    
                    }
                }
                conn.Close();
                return st;
            }
            
    
            //添加
            public bool Insert(Student stu)
            {
                bool ok = false;
                int count = 0;
                comm.CommandText = "insert into Student values(@a,@b,@c,@d,@e)";
                comm.Parameters.Clear();
                comm.Parameters.AddWithValue("@a", stu.Code);
                comm.Parameters.AddWithValue("@b", stu.Name);
                comm.Parameters.AddWithValue("@c", stu.Sex);
                comm.Parameters.AddWithValue("@d", stu.Birthday);
                comm.Parameters.AddWithValue("@e", stu.SubjectCode);
                try
                {
                    conn.Open();
                    count = comm.ExecuteNonQuery();
                }
                catch
                {
                    ok = false;
                }
                finally
                {
                    conn.Close();
                }
                if (count > 0)
                    ok = true;
                else
                    ok = false;
    
                return ok;
            }
    
            //删除
            public bool Delete(string st)
            {
                bool have = false;
                int count_del = 0;
                comm.CommandText = "delete from Student where Code=@a";
                comm.Parameters.Clear();
                comm.Parameters.AddWithValue("@a", st);
                try
                {
                    conn.Open();
                    count_del = comm.ExecuteNonQuery();
                }
                catch
                {
                    have = false;
                }
                finally
                {
                    conn.Close();
                }
                if (count_del > 0)
                    have = true;
                return have;
            }
    
    
            //修改
            public bool Update(Student user)
            {
                bool ok = false;
                int count = 0;
                comm.CommandText = "update Student set Name=@b,Sex=@c,Birthday=@d,SubjectCode=@e where Code=@a";
                comm.Parameters.Clear();
                comm.Parameters.AddWithValue("@a", user.Code);
                comm.Parameters.AddWithValue("@b", user.Name);
                comm.Parameters.AddWithValue("@c", user.Sex);
                comm.Parameters.AddWithValue("@d", user.Birthday);
                comm.Parameters.AddWithValue("@e", user.SubjectCode);
                try
                {
                    conn.Open();
                    count = comm.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    ok = false;
                }
                finally
                {
                    conn.Close();
                }
                if (count > 0)
                {
                    ok = true;
                }
                return ok;
            }
    
        }
    }
    View Code

    业务逻辑层:Program.cs

    using ADONET测试.App_Code;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ADONET测试
    {
        class Program
        {
            static void Main(string[] args)
            {
                //查询所有学生的数据,统计总人数count,统计平均年龄
                int count = 0, sum = 0;
                List<Student> slist = new StudentData().Select();//调用StudentData类中的Select()方法查询所有学生的数据
                Console.Clear();
                Console.WriteLine("编号	姓名	性别	年龄	生日		专业");
                foreach (Student sss in slist)
                {
                    Console.WriteLine(sss.Code + "	" + sss.Name + "	" + sss.SexStr + "	" + sss.Age + "	" + sss.BirthdayStr + "	" + sss.SubjectName);
                    count++;
                    sum += sss.Age;
                }
                Console.WriteLine("统计:总人数为" + count + "人,平均年龄为" + (sum / count) + "岁。");
    
    
                for (; ; )
                {
                    Console.Write("请输入您要继续的操作(输入数字1为新增,输入数字2为修改,输入数字3为删除):");
                    string operate = Console.ReadLine();
                    if (operate == "1")
                    {
                        Student stu = new Student();
                        for (; ; )
                        {
    
                            Console.Write("请输入学生编号:");
                            stu.Code = Console.ReadLine();
                            if (stu.Code.Trim() == "")//判断编号是否为空
                            {
                                Console.WriteLine("编号不能为空!");
                            }
                            else
                            {
                                if (new StudentData().Select(stu.Code))//判断编号是否存在
                                {
                                    Console.WriteLine("此编号已存在!");
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
    
                        for (; ; )
                        {
                            Console.Write("请输入学生姓名(不能为空):");
                            stu.Name = Console.ReadLine();
                            if (stu.Name.Trim() == "")//判断学生姓名是否为空
                            {
                                Console.WriteLine("姓名不能为空!");
                            }
                            else
                            {
                                break;
                            }
                        }
                        for (; ; )
                        {
                            Console.Write("请输入学生性别(男/女):");
                            string Sex = Console.ReadLine();
                            if (Sex == "")//性别只能输入男或女
                            {
                                stu.Sex = true;
                                break;
                            }
                            else if (Sex == "")
                            {
                                stu.Sex = false;
                                break;
                            }
                            else
                            {
                                Console.WriteLine("性别必须为男女!");
                            }
                        }
                        for (; ; )
                        {
                            Console.Write("请输入学生生日(如:2000/12/12):");
                            string Birthday = Console.ReadLine();
                            try//判断日期格式是否正确
                            {
                                stu.Birthday = Convert.ToDateTime(Birthday);
                                break;
                            }
                            catch
                            {
                                Console.WriteLine("日期格式错误!");
                                continue;
                            }
    
    
                        }
                        for (; ; )
                        {
                            Console.Write("请输入专业:");
                            string SubjectName = Console.ReadLine();
                            if (SubjectName == "")//若科目名称不输入任何信息,则不赋给科目编号任何信息(值为空)
                            {
                                stu.SubjectCode = "";
                                break;
                            }
                            else
                            {
                                if (new StudentData().select1(SubjectName))//调用StudentData类中的select1(科目名称)方法,判断是否存在该科目
                                                                            //若存在返回true
                                {
                                    Student st = new StudentData().select(SubjectName);//调用StudentData类中的select(科目名称)方法获取该科目的所有信息
                                    stu.SubjectCode = st.SubjectCode;
                                    break;
    
                                }
                                else
                                {
                                    Console.WriteLine("没有此专业!");
                                }
                            }
                        }
                        Console.WriteLine("编号	姓名	性别	生日		专业");//输出新增学生的信息
                        Console.WriteLine(stu.Code + "	" + stu.Name + "	" + stu.SexStr + "	" + stu.BirthdayStr + "	" + stu.SubjectName);
    
                        Console.Write("以上为新增学生的信息,是否确定添加?(Y/N):");//用户操作
                        string yn = Console.ReadLine();
                        if (yn.ToUpper() == "Y")
                        {
                            if (new StudentData().Insert(stu))//调用StudentData类中的Insert(Student 名称)方法
                            {
                                Console.Clear();
                                List<Student> stlist = new StudentData().Select();//泛型集合,调用StudentData类中的Select()方法查询所有学生的数据
                                Console.Clear();
                                Console.WriteLine("编号	姓名	性别	年龄	生日	专业");
                                foreach (Student sss in stlist)//打印添加后所有学生的信息
                                {
                                    Console.WriteLine(sss.Code + "	" + sss.Name + "	" + sss.SexStr + "	" + sss.Age + "	" + sss.BirthdayStr + "	" + sss.SubjectName);
                                }
                                Console.WriteLine("添加成功!");
    
                            }
                            else
                            {
                                Console.WriteLine("添加失败!");
    
                            }
                        }
                        else
                        {
                            Console.WriteLine("取消添加!");
                            continue;
                        }
                    }
                    else if (operate == "2")
                    {
                        Console.Write("输入要修改的学生编号:");
                        string operate_update = Console.ReadLine();
                        if (new StudentData().Select(operate_update))//调用StudentData类中的Select(学生编号)方法,判断是否存在该编号
                        {
                            //泛型集合,调用StudentData类中的Select1(学生编号)方法,查询当前学生的信息
                            List<Student> stlist = new StudentData().Select1(operate_update);
                            Console.Clear();
                            Student stu = new Student();
                            stu.Code = operate_update;
                            foreach (Student sss in stlist)
                            {
                                Console.WriteLine(sss.Code + "学生当前姓名为:" + sss.Name);
    
                                for (; ; )
                                {
                                    Console.Write("请输入您的修改:");
                                    stu.Name = Console.ReadLine();
                                    if (stu.Name.Trim() == "")//姓名不能为空
                                    {
                                        Console.WriteLine("姓名不能为空!");
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
    
                                Console.WriteLine(sss.Code + "学生当前性别为:" + sss.SexStr);
                                for (; ; )
                                {
                                    Console.Write("请输入您的修改:");
                                    string sex = Console.ReadLine();
                                    if (sex == "")//性别只能输入男或女
                                    {
                                        stu.Sex = true;
                                        break;
                                    }
                                    else if (sex == "")
                                    {
                                        stu.Sex = false;
                                        break;
                                    }
                                    else
                                    {
                                        Console.WriteLine("性别必须为男女!");
                                    }
                                }
    
                                Console.WriteLine(sss.Code + "学生当前生日为:" + sss.BirthdayStr);
                                for (; ; )
                                {
                                    Console.Write("请输入您的修改:");
                                    string birthday = Console.ReadLine();
                                    try//判断日期格式是否正确
                                    {
                                        stu.Birthday = Convert.ToDateTime(birthday);
                                        break;
                                    }
                                    catch
                                    {
                                        Console.WriteLine("日期格式错误!");
                                        continue;
                                    }
                                }
                                Console.WriteLine(sss.Code + "学生当前专业为:" + sss.SubjectName);
                                for (; ; )
                                {
                                    Console.Write("请输入您的修改:");
                                    string subjectcode = Console.ReadLine();
    
                                    if (subjectcode == "")//若科目名称不输入任何信息,则不赋给科目编号任何信息(值为空)
                                    {
                                        stu.SubjectCode = "";
                                        break;
                                    }
                                    else
                                    {
                                        if (new StudentData().select1(subjectcode))//调用StudentData类中的select1(科目名称)方法,判断是否存在该科目
                                                                                  //若存在返回true
                                        {
                                            Student st = new StudentData().select(subjectcode);//调用StudentData类中的select(科目名称)方法获取该科目的所有信息
                                            stu.SubjectCode = st.SubjectCode;
                                            break;
    
                                        }
                                        else
                                        {
                                            Console.WriteLine("没有此专业!");
                                        }
                                    }
                                }
                            }
                            //List<Student> stulist = new StudentData().Select1(operate_update);//泛型集合调用StudentData类中的Select1(学生编号)方法
                            Console.Clear();
                            Console.WriteLine("编号	姓名	性别	年龄	生日		专业");//打印该学生修改后的所有信息
    
                            Console.WriteLine(stu.Code + "	" + stu.Name + "	" + stu.SexStr + "	" + stu.Age + "	" + stu.BirthdayStr + "	" + stu.SubjectName);
    
                            Console.Write("以上为修改后的学生信息,是否确定修改?(Y/N):");
                            string yn = Console.ReadLine();
                            if (yn.ToUpper() == "Y")
                            {
                                if (new StudentData().Update(stu))//调用StudentData类中的Updata(Student 名称)方法,返回True表示添加成功
                                {
                                    List<Student> studlist = new StudentData().Select();//泛型集合调用StudentData类中的Select()方法,获取所有学生的信息
                                    Console.Clear();
                                    Console.WriteLine("编号	姓名	性别	年龄	生日		专业");
                                    foreach (Student sss in studlist)//打印修改后所有学生的信息
                                    {
                                        Console.WriteLine(sss.Code + "	" + sss.Name + "	" + sss.SexStr + "	" + sss.Age + "	" + sss.BirthdayStr + "	" + sss.SubjectName);
                                    }
                                    Console.WriteLine("修改成功!");
                                }
                                else
                                {
                                    Console.WriteLine("修改失败!");
                                    continue;
                                }
                            }
                            else
                            {
                                Console.WriteLine("取消修改!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("无此学生!");
                            continue;
                        }
    
                    }
                    else if (operate == "3")
                    {
                        Console.Write("输入要删除的学生编号:");
                        string operate_delete = Console.ReadLine();
                        if (new StudentData().Select(operate_delete))////调用StudentData类中的Select(学生编号)方法,返回True表示存在该学生
                        {
                            List<Student> stlist = new StudentData().Select1(operate_delete);//泛型集合调用StudentData类中的Select1(学生编号)方法
                                                                                            //获取当前学生的信息
                            Console.Clear();
                            Console.WriteLine("编号	姓名	性别	年龄	生日		专业");
                            foreach (Student sss in stlist)//打印当前学生的信息
                            {
                                Console.WriteLine(sss.Code + "	" + sss.Name + "	" + sss.SexStr + "	" + sss.Age + "	" + sss.BirthdayStr + "	" + sss.SubjectName);
                            }
                            Console.Write("是否删除(Y/N)");
                            string yn = Console.ReadLine();
                            if (yn.ToUpper() == "Y")
                            {
                                if (new StudentData().Delete(operate_delete))//调用StudentData类中的Delete(学生编号)方法,返回True便是删除成功
                                {
                                    Console.Clear();
                                    List<Student> stulist = new StudentData().Select();//泛型集合调用StudentData类中的Select()方法,获取所有学生的信息
                                    Console.Clear();
                                    Console.WriteLine("编号	姓名	性别	年龄	生日		专业");
                                    foreach (Student sss in stulist)//打印删除后的所有学生信息
                                    {
                                        Console.WriteLine(sss.Code + "	" + sss.Name + "	" + sss.SexStr + "	" + sss.Age + "	" + sss.BirthdayStr + "	" + sss.SubjectName);
                                    }
                                    Console.WriteLine("删除成功!");
    
                                }
                                else
                                {
                                    Console.WriteLine("删除失败!");
    
                                }
                            }
                            else
                            {
                                Console.WriteLine("取消删除!");
                                continue;
                            }
                        }
                        else
                        {
                            Console.WriteLine("无此学生!");
                            continue;
                        }
    
    
                    }
                    else
                    {
                        Console.WriteLine("输入有误!");
                    }
    
    
                }
                Console.ReadKey();
            }
        }
    }
    View Code
  • 相关阅读:
    【NX二次开发】获取体是实体还是片体UF_MODL_ask_body_type()
    【creo】CREO5.0+VS2019配置(还没写完)
    【NX二次开发】导出x_t、导入x_t例子,UF_PS_export_data、UF_PS_import_data
    UG_PS Parasolid相关的操作
    【NX二次开发】创建老版的基准平面uf5374
    UnityShader之固定管线命令Combine纹理混合【Shader资料4】
    UnityShader之固定管线Fixed Function Shader【Shader资料3】
    UnityShader之Shader分类篇【Shader资料2】
    UnityShader之Shader格式篇【Shader资料1】
    Unity3D事件函数的执行顺序
  • 原文地址:https://www.cnblogs.com/maxin991025-/p/6127995.html
Copyright © 2011-2022 走看看