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商机题目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Property Exercise
- 下一篇: 2014025689《嵌入式程序设计》第