zoukankan      html  css  js  c++  java
  • ADO.net之综合演练

    using ConsoleApplication4.App_Code;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication4
    {
        class Program
        {
            static void Main(string[] args)
            {
                while (true)
                {
                    //学生信息展示
                    new StudentData().print();
                    //用户输入操作
                    Console.Write("请输入您要继续的操作(输入数字1为新增,输入数字2为修改,输入数字3为删除):");
                    string Do = Console.ReadLine();
                    //添加
                    #region 添加
                    if (Do == "1")
                    {
                        try
                        {//用户输入信息
                            Student sti = new Student();
                            sti.Code = new StudentData().bianhao();
                            Console.WriteLine("学生编号为:" + sti.Code);
                            //循环输入姓名
                            sti.Name = new StudentData().name();
                            //循环输入性别
                            sti.Sex = new StudentData().sex();
                            //循环输入生日
                            sti.Birthday = new StudentData().birthday();
                            //循环输入专业
                            sti.SubjectCode = new StudentData().subject();
    
                            for (; ; )
                            {
                                //打印添加内容
                                Console.WriteLine("编号	姓名	性别	年龄	生日	专业");
                                Console.WriteLine(sti.Code + "	" + sti.Name + "	" + sti.Sexstr + "	" + sti.Birthdaystr + "	" + sti.SubjectName);
                                Console.Write("以上为新增学生的信息,是否确定添加?(Y/N):");
                                string yn = Console.ReadLine();
                                //调用方法添加
                                if (yn == "Y")
                                {
                                    new StudentData().insert(sti);
                                    //清空前数据
                                    Console.Clear();
                                    Console.WriteLine("添加成功!");
                                    break;
                                }
                                else if (yn == "N")
                                {
                                    //清空前数据
                                    Console.Clear();
                                    Console.WriteLine("未添加成功!");
                                    break;
                                }
                                else
                                {
                                    Console.WriteLine("请正确输入指令!");
                                    continue;
                                }
                            }
                            continue;
                        }
                        catch
                        {
                            //清空前数据
                            Console.Clear();
                            Console.WriteLine("添加失败,请重新输入!");
                            continue;
                        }
                    }
                    #endregion
                    //修改
                    #region 修改
                    else if (Do == "2")
                    {
                        Console.Write("请输入修改学生编号:");
                        string sc = Console.ReadLine();
                        Student stupate = new Student();
                        StudentData stu = new StudentData();
                        if (stu.codesel(sc))
                        {
                            stupate.Code = sc;
                            try
                            {
                                List<Student> ulist = stu.selectcode(sc);
                                foreach (Student st in ulist)
                                {
                                    Console.WriteLine(st.Code + "学生当前姓名为:" + st.Name);
                                    stupate.Name = stu.name();
                                    Console.WriteLine(st.Code + "学生当前性别为:" + st.Sexstr);
                                    stupate.Sex = stu.sex();
                                    Console.WriteLine(st.Code + "学生当前生日为:" + st.Birthdaystr);
                                    stupate.Birthday = stu.birthday();
                                    Console.WriteLine(st.Code + "学生当前专业为:" + st.SubjectName);
                                    stupate.SubjectCode = stu.subject();
                                }
                            }
                            catch
                            {
                                //清除
                                Console.Clear();
                                Console.WriteLine("输入失败,请重新输入!");
                                continue;
                            }
                        }
                        else
                        {
                            //清除
                            Console.Clear();
                            Console.WriteLine("输入编号有误,请重新输入!");
                            continue;
                        }
    
                        for (; ; )
                        {
                            //打印修改内容
                            Console.WriteLine("编号	姓名	性别	年龄	生日	专业");
                            Console.WriteLine(stupate.Code + "	" + stupate.Name + "	" + stupate.Sexstr + "	" + stupate.Birthdaystr + "	" + stupate.SubjectName);
                            Console.Write("以上为查询学生的信息,是否确定修改?(Y/N):");
                            string yn = Console.ReadLine();
                            //调用方法修改
                            if (yn == "Y")
                            {
                                new StudentData().update(stupate);
                                //清空前数据
                                Console.Clear();
                                Console.WriteLine("添加成功!");
                                break;
                            }
                            else if (yn == "N")
                            {
                                //清空前数据
                                Console.Clear();
                                Console.WriteLine("未添加成功!");
                                break;
                            }
                            else
                            {
                                Console.WriteLine("请正确输入指令!");
                                continue;
                            }
                        }
    
                        continue;
    
                    }
                    #endregion
                    //删除
                    #region 删除
                    else if (Do == "3")
                    {
                        Console.Write("请输入学生编号:");
                        string a = Console.ReadLine();
                        StudentData std = new StudentData();
                        if (std.codesel(a))
                        {
                            List<Student> dlist = std.selectcode(a);
                            foreach (Student st in dlist)
                            {
                                Console.WriteLine("编号	姓名	性别	年龄	生日	专业");
                                Console.WriteLine(st.Code + "	" + st.Name + "	" + st.Sexstr + "	" + st.Birthdaystr + "	" + st.SubjectName);
                            }
    
                            for (; ; )
                            {
                                Console.Write("以上为查询学生的信息,是否确定删除?(Y/N):");
                                string yn = Console.ReadLine();
                                //调用方法删除
                                if (yn == "Y")
                                {
                                    std.delete(a);
                                    //清空前数据
                                    Console.Clear();
                                    Console.WriteLine("删除成功!");
                                    break;
                                }
                                else if (yn == "N")
                                {
                                    //清空前数据
                                    Console.Clear();
                                    Console.WriteLine("删除失败");
                                    break;
                                }
                                else
                                {
                                    Console.WriteLine("请正确输入指令!");
                                    continue;
                                }
                            }
                            continue;
                        }
    
                        else
                        {
                            Console.Clear();
                            Console.WriteLine("输入编号有误,请重新输入!");
                            continue;
                        }
                    }
                    #endregion
                    //错误提醒
                    else
                    {
                        //清除
                        Console.Clear();
                        Console.WriteLine("请正确输入操作数字!!");
                        continue;
                    }
                    Console.ReadLine();
                }
            }
        }
    }
    C#端代码
    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication4.App_Code
    {
        public class StudentData
        {
            //数据库定义变量
            SqlConnection conn = null;
            SqlCommand cmd = null;
            //构造函数
            public StudentData()
            {
                conn = new SqlConnection("server=.;database=ADO;user=sa;pwd=123456");
                cmd = conn.CreateCommand();
            }
            //查询全部方法创建
            public List<Student> SelectAll()
            {
                List<Student> slist = new List<Student>();
                cmd.CommandText = "select*from Student order by Code asc";
                try
                {
                    conn.Open();
                    SqlDataReader dr = cmd.ExecuteReader();
                    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);
                    }
                }
                catch
                {
                    Student st = new Student();
                    st.Code = "数据加载失败!!";
                    st.Name = "StudentError500";
                    slist.Add(st);
                }
                finally
                {
                    conn.Close();
                }
                return slist;
            }
            //查询打印全部方法
            public void print()
            {
                Console.WriteLine("编号	姓名	性别	年龄	生日	专业");
                //遍历数据打印
                StudentData st = new StudentData();
                List<Student> sd = st.SelectAll();
                int count = 0;
                int sum = 0;
                foreach (Student s in sd)
                {
                    Console.WriteLine(s.Code + "	" + s.Name + "	" + s.Sexstr + "	" + s.Age + "	" + s.Birthdaystr + "	" + s.SubjectName);
                    count++;
                    sum += s.Age;
                }
                double avg = sum / count;
                Console.WriteLine("统计:总人数为" + count + "人,平均年龄为" + avg + "岁。");
            }
            //编号查询打印方法
            public List<Student> selectcode(string a)
            {
                List<Student> slist = new List<Student>();
                cmd.CommandText = "select *from Student where Code=@Code";
                cmd.Parameters.AddWithValue("@Code", a);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    Student st = new Student();
                    dr.Read();
                    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 bool codesel(string a)
            {
                bool end = false;
                cmd.CommandText = "select *from Student where Code=@a";
                cmd.Parameters.AddWithValue("@a", a);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    end = true;
                }
                conn.Close();
                return end;
            }
            //添加
            public void insert(Student st)
            {
                cmd.CommandText = "insert into Student values(@a,@b,@c,@d,@e)";
                cmd.Parameters.AddWithValue("@a", st.Code);
                cmd.Parameters.AddWithValue("@b", st.Name);
                cmd.Parameters.AddWithValue("@c", st.Sex);
                cmd.Parameters.AddWithValue("@d", st.Birthday);
                cmd.Parameters.AddWithValue("@e", st.SubjectCode);
    
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
            }
            //添加条件方法
            //姓名判断
            public string name()
            {
                string end = null;
                for (; ; )
                {
                    Console.Write("请输入姓名(不能为空):");
                    string a = Console.ReadLine();
                    if (a == null)
                    {
                        Console.WriteLine("输入姓名有误请重新输入!");
                        continue;
                    }
                    else
                    {
                        end = a;
                        break;
                    }
                }
                return end;
            }
            //性别判断
            public bool sex()
            {
                bool end = false;
                for (; ; )
                {
                    Console.Write("请输入性别(男/女):");
                    string a = Console.ReadLine();
                    if (a == "")
                    {
                        end = true;
                        break;
                    }
                    else if (a == "")
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("输入有误请重新输入!");
                    }
                }
                return end;
            }
            //生日判断
            public DateTime birthday()
            {
                DateTime end = new DateTime();
                for (; ; )
                {
                    Console.Write("请输入生日(如:2000/12/12):");
                    string a = Console.ReadLine();
                    try
                    {
                        end = Convert.ToDateTime(a);
                        break;
                    }
                    catch
                    {
                        Console.WriteLine("输入生日有误请重新输入!");
                    }
                }
                return end;
            }
            //专业判断
            public string subject()
            {
                string end = null;
                for (; ; )
                {
                    Console.Write("请输入专业:");
                    string a = Console.ReadLine();
                    //调用方法判断专业s
                    if (new SubjectData().selectsub(a))
                    {
                        end = new SubjectData().selectsubC(a);
                        break;
                    }
                    else
                    {
                        Console.WriteLine("没有此专业");
                    }
                }
                return end;
            }
            //编号自动生成方法
            public string bianhao()
            {
                string a = null;
                cmd.CommandText = "select Code from Student order by Code desc";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                    string b = dr[0].ToString().Substring(1);
                    a = "S" + ((Convert.ToInt32(b) + 1).ToString("000"));
                }
                conn.Close();
                return a;
            }
            //修改
            public void update(Student st)
            {
                cmd.CommandText = "update Student set Name=@b,Sex=@c,Birthday=@d,SubjectCode=@e where Code=@uCode";
                cmd.Parameters.AddWithValue("@uCode", st.Code);
                cmd.Parameters.AddWithValue("@b", st.Name);
                cmd.Parameters.AddWithValue("@c", st.Sex);
                cmd.Parameters.AddWithValue("@d", st.Birthday);
                cmd.Parameters.AddWithValue("@e", st.SubjectCode);
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
            }
            //删除
            public void delete(string a)
            {
                cmd.CommandText = "delete from Student where Code=@dcode";
                cmd.Parameters.AddWithValue("@dcode",a);
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
            }
    
    
    
    
    
    
    
        }
    }
    StudentData
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication4.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; }
            }
        }
    }
    Subject
    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication4.App_Code
    {
        public class SubjectData
        {
            SqlConnection conn = null;
            SqlCommand cmd = null;
            public SubjectData()
            {
                conn = new SqlConnection("server=.;database=ADO;user=sa;pwd=123456;");
                cmd = conn.CreateCommand();
            }
            //由编号查询专业名称
            public string SubselectAll(string SubCode)
            {
                string end = "<暂无>";
                cmd.CommandText = "select *from Subject where SubjectCode = @a";
                cmd.Parameters.AddWithValue("@a",SubCode);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                try
                { 
                    if (dr.HasRows)
                    {
                        dr.Read();
                        end = dr["SubjectName"].ToString();
                    }
                }
                catch { }
                finally { conn.Close(); }
                return end;
            }
            //由名称查询专业编号
            //是否有
            public bool selectsub(string bsub)
            {
                bool end = false;
                cmd.CommandText = "select SubjectCode from Subject where SubjectName like '%"+bsub+"%' ";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    end = true;
                }
                conn.Close();
                return end;
            }
            //返回查询编号
            public string selectsubC(string ssub)
            {
                string end = "暂无";
                cmd.CommandText = "select SubjectCode from Subject where SubjectName like '%"+ssub+"%' ";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                    end = dr["SubjectCode"].ToString();
                }
                conn.Close();
                return end;
            }
        }
    }
    SubjectData
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication4.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 Sexstr
            {
                get { return _Sex ? "" : ""; }
            }
            private DateTime _Birthday;
    
            public DateTime Birthday
            {
                get { return _Birthday; }
                set { _Birthday = value; }
            }
            //生日扩展
            public string Birthdaystr
            {
                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 SubjectName
            {
                get { return new SubjectData().SubselectAll(_SubjectCode); }
            }
        }
    }
    Student

     题目要求:

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

    学生编号(自动生成):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表数据,并提示删除成功,继续回到“二”等待用户继续操作。

  • 相关阅读:
    金山词霸注册表怎么删
    新手学习jquery
    《企业应用架构模式》(POEAA)读书笔记
    Silverlight 4 tools
    asp.net非常基础的面试题
    VS 2010 中文版正式版无法安装Silverlight4 Tools的解决办法
    OnPreRender(EventArgs e) 事件常用的方法
    各大搜索引擎网站登录入口
    向用户控件传递参数的问题
    URLRewriter
  • 原文地址:https://www.cnblogs.com/hclyz/p/6751617.html
Copyright © 2011-2022 走看看