一个ADO的综合小练习

题目:

一、数据显示:

二、功能操作:

“请输入您要继续的操作(输入数字1为新增,输入数字2为修改,输入数字3为删除):”,输入其它内容提示输入有误,并回到上面继续等待用户操作。

三、新增:

当用户输入1并回车后,按照顺序让用户分别输入:学生编号,学生姓名,性别,生日,专业等内容。

每次输入都需要做以下判断,如果输入不正确,则提示输入有误,并让用户重新输入,当每一项输入正确后才可以继续下一项的输入;

1、学生编号不允许重复

2、学生姓名不能为空

3、性别只能输入男/女,并自动转换为true/false

4、生日格式是否是正确

5、专业需要用户输入中文,如:当用户输入“商务英语”或“英语”,自动查到“Z001”专业编号,如果查不到则提示“没有此专业,请重新输入。”

当以上内容全部填写完毕并无误后,将此学生信息打印显示出来,并询问用户“以上为新增学生的信息,是否确定添加?(Y/N):”,当用户输入Y确定添加后,才进行添加,如果添加成功,则将控制台程序清空,并刷新显示最新的Student表数据,在底部提示”添加成功”,并继续回到“第2步”等待用户继续操作。

四、修改:

当用户输入2并回车时,提示用户输入需要更改的学生编号,如果有此学生,那么除学生编号外,其余的内容全部进行修改。

已查询到的学生信息,请进行以下修改:

每次修改后都需要与新增时一样的判断,当全部内容都修改完毕后,将修改后的学生信息打印显示出来,并询问“以上为修改后的学生信息,是否确定修改?(Y/N):”,当用户输入Y并回车才真正确定修改,并提示修改是否成功,如果修改成功,则清空控制台内容,刷新显示最新的Student表数据,并提示修改成功,继续回到“二”等待用户继续操作。

五、删除:

当用户输入3并回车时,提示用户输入需要删除的学生编号,如果有此学生,那么将此学生的信息展示出来,并提示“是否要删除此学生的信息?(Y/N)”,当用户输入Y确定删除后,才进行删除,并提示删除是否成功,如果删除成功,则清空控制台内容,刷新显示最新的Student表数据,并提示删除成功,继续回到“二”等待用户继续操作。

答案:

1.建表

 1 create database ADOkaoshi
 2 go
 3 use ADOkaoshi
 4 go
 5 create table Student
 6 (
 7     Code nvarchar(50) primary key not null,
 8     Name nvarchar(50) not null,
 9     Sex bit not null,
10     Birthday datetime not null,
11     SubjectCode nvarchar(50)
12 )
13 create table Ssubject
14 (
15     SubjectCode nvarchar(50) primary key not null,
16     SubjectName nvarchar(50) not null
17 )
18 insert into Ssubject values(‘Z001‘,‘商务英语‘)
19 insert into Ssubject values(‘Z002‘,‘软件工程‘)
20 insert into Ssubject values(‘Z003‘,‘旅游‘)
21 insert into Ssubject values(‘Z004‘,‘工商管理‘)
22 go
23 insert into Student values(‘S001‘,‘张三‘,1,‘1994-1-12‘,‘Z001‘)
24 insert into Student values(‘S002‘,‘李四‘,1,‘1995-2-22‘,‘Z002‘)
25 insert into Student values(‘S003‘,‘王五‘,1,‘1996-8-28‘,‘Z002‘)
26 insert into Student values(‘S004‘,‘小花‘,0,‘1997-3-6‘,‘Z003‘)
27 go
28 select * from Ssubject
29 select * from Student
30  

2.建立数据模型

 1  public class student
 2     {
 3         private string _Code;
 4
 5         public string Code
 6         {
 7             get { return _Code; }
 8             set { _Code = value; }
 9         }
10         private string _Name;
11
12         public string Name
13         {
14             get { return _Name; }
15             set { _Name = value; }
16         }
17         private bool _Sex;
18
19         public bool Sex
20         {
21             get { return _Sex; }
22             set { _Sex = value; }
23         }
24         private DateTime _Birthday;
25
26         public DateTime Birthday
27         {
28             get { return _Birthday; }
29             set { _Birthday = value; }
30         }
31         private string _SubjectCode;
32
33         public string SubjectCode
34         {
35             get { return _SubjectCode; }
36             set { _SubjectCode = value; }
37         }
38
39         public string Subjectname
40         {
41             get
42             {
43                 string sub = "";
44                 SqlConnection conn = new SqlConnection("server=.;database=ADOkaoshi;user=sa;pwd=123;");
45                 SqlCommand com = conn.CreateCommand();
46                 com.CommandText = "select * from Ssubject where SubjectCode = @Subjectcode";
47                 com.Parameters.Clear();
48                 com.Parameters.Add("@Subjectcode",_SubjectCode);
49                 conn.Open();
50                 SqlDataReader data = com.ExecuteReader();
51                 if(data.HasRows)
52                 {
53                     data.Read();
54                     sub = data["SubjectName"].ToString();
55                 }
56                 conn.Close();
57                 return sub;
58             }
59         }
60     }

3.写数据访问方法

  1 public class studentway
  2     {
  3         SqlConnection conn = null;
  4         SqlCommand com = null;
  5         public studentway()
  6         {
  7             conn = new SqlConnection("server=.;database=ADOkaoshi;user=sa;pwd=123;");
  8             com = conn.CreateCommand();
  9         }
 10         /// <summary>
 11         /// 查询表
 12         /// </summary>
 13         /// <returns></returns>
 14         public List<student> chaxun()
 15         {
 16             List<student> list = new List<student>();
 17             com.CommandText = "select * from Student";
 18             conn.Open();
 19             SqlDataReader data = com.ExecuteReader();
 20             if (data.HasRows)
 21             {
 22                 while (data.Read())
 23                 {
 24                     student stu = new student();
 25                     stu.Code = data["Code"].ToString();
 26                     stu.Name = data["Name"].ToString();
 27                     stu.Sex = Convert.ToBoolean(data["Sex"]);
 28                     stu.Birthday = Convert.ToDateTime(data["Birthday"]);
 29                     stu.SubjectCode = data["SubjectCode"].ToString();
 30                     list.Add(stu);
 31                 }
 32             }
 33             conn.Close();
 34             return list;
 35         }
 36         /// <summary>
 37         /// 查询
 38         /// </summary>
 39         /// <returns></returns>
 40         public List<student> chaxun1(string code)
 41         {
 42             List<student> list = new List<student>();
 43             com.CommandText = "select * from Student where Code = @code";
 44             com.Parameters.Clear();
 45             com.Parameters.Add("@code",code);
 46             conn.Open();
 47             SqlDataReader data = com.ExecuteReader();
 48             if (data.HasRows)
 49             {
 50                 while (data.Read())
 51                 {
 52                     student stu = new student();
 53                     stu.Code = data["Code"].ToString();
 54                     stu.Name = data["Name"].ToString();
 55                     stu.Sex = Convert.ToBoolean(data["Sex"]);
 56                     stu.Birthday = Convert.ToDateTime(data["Birthday"]);
 57                     stu.SubjectCode = data["SubjectCode"].ToString();
 58                     list.Add(stu);
 59                 }
 60             }
 61             conn.Close();
 62             return list;
 63         }
 64         /// <summary>
 65         /// 修改
 66         /// </summary>
 67         /// <param name="code">编号</param>
 68         /// <param name="name">名字</param>
 69         /// <param name="sex">性别</param>
 70         /// <param name="birthday">生日</param>
 71         /// <param name="subjectcode">课程号</param>
 72         public void xiugai(string code, string name, bool sex, DateTime birthday, string subjectcode)
 73         {
 74             com.CommandText = "update student set Name = @Name,Sex = @Sex,Birthday = @Birthday,SubjectCode = @SubjectCode where Code = @Code";
 75             com.Parameters.Clear();
 76             com.Parameters.Add("@Code", code);
 77             com.Parameters.Add("@Name", name);
 78             com.Parameters.Add("@Sex", sex);
 79             com.Parameters.Add("@Birthday", birthday);
 80             com.Parameters.Add("@SubjectCode", subjectcode);
 81             conn.Open();
 82             com.ExecuteNonQuery();
 83             conn.Close();
 84         }
 85         /// <summary>
 86         /// 添加
 87         /// </summary>
 88         /// <param name="code">学号</param>
 89         /// <param name="name">名字</param>
 90         /// <param name="sex">性别</param>
 91         /// <param name="birthday">生日</param>
 92         /// <param name="subjectcode">课程号</param>
 93         public void tianjia(string code, string name, bool sex, DateTime birthday, string subjectcode)
 94         {
 95             com.CommandText = "insert into Student values(@Code,@Name,@Sex,@Birthday,@SubjectCode)";
 96             com.Parameters.Clear();
 97             com.Parameters.Add("@Code", code);
 98             com.Parameters.Add("@Name", name);
 99             com.Parameters.Add("@Sex", sex);
100             com.Parameters.Add("@Birthday", birthday);
101             com.Parameters.Add("@SubjectCode", subjectcode);
102             conn.Open();
103             com.ExecuteNonQuery();
104             conn.Close();
105         }
106         /// <summary>
107         /// 删除
108         /// </summary>
109         /// <param name="code">学号</param>
110         public void shanchu(string code)
111         {
112             com.CommandText = "delete from Student where Code = @Code";
113             com.Parameters.Clear();
114             com.Parameters.Add("@Code", code);
115             conn.Open();
116             com.ExecuteNonQuery();
117             conn.Close();
118         }
119     }

4.打印的方法

 1  class dayin
 2     {
 3         /// <summary>
 4         /// 打印全部
 5         /// </summary>
 6         public void dayin1()
 7         {
 8             List<student> list = new studentway().chaxun();
 9             Console.WriteLine("编号" + "      " + "姓名" + "     " + "性别" + "       " + "年龄" + "       " + "生日" + "            " + "专业");
10             foreach (student a in list)
11             {
12                 string sex = (a.Sex) ? "男" : "女";
13                 Console.WriteLine(a.Code + "      " + a.Name + "      " + sex + "          " + (DateTime.Now.Year - a.Birthday.Year) + "    " + (a.Birthday.ToString("yyyy年MM月dd日")) + "   " + a.Subjectname);
14             }
15         }
16         /// <summary>
17         /// 打印用户输入的数据
18         /// </summary>
19         /// <param name="Code"></param>
20         /// <param name="Name"></param>
21         /// <param name="Sex"></param>
22         /// <param name="Birthday"></param>
23         /// <param name="Subjectname"></param>
24         public void dayin2(string Code,string Name,bool Sex,DateTime Birthday,string Subjectname)
25         {
26             Console.WriteLine("编号" + "      " + "姓名" + "     " + "性别" + "       " + "年龄" + "       " + "生日" + "            " + "专业");
27             string sex = (Sex) ? "男" : "女";
28             Console.WriteLine(Code + "      " + Name + "      " + sex + "          " + (DateTime.Now.Year - Birthday.Year) + "    " + (Birthday.ToString("yyyy年MM月dd日")) + "   " + Subjectname);
29         }
30     }
31 }

5.定义的变量

1 class shuxing
2     {
3         public string code;
4         public string name;
5         public bool sex;
6         public DateTime birthday;
7         public string subjectname;
8         public string subjectcode;
9    }

6.Main函数中的代码

  1 //1.数据显示
  2             dayin aa = new dayin();
  3             aa.dayin1();
  4             //2.用户输入
  5             for (; ; )
  6             {
  7                 string shuru = "";
  8                 for (; ; )
  9                 {
 10                     Console.Write("请输入您要继续的操作(输入数字1为新增,输入数字2为修改,输入数字3为删除):");
 11                     shuru = Console.ReadLine();
 12                     if (shuru == "1" || shuru == "2" || shuru == "3")
 13                     {
 14                         break;
 15                     }
 16                     else
 17                     {
 18                         Console.WriteLine("您的输入有误,请重新输入!");
 19                     }
 20                 }
 21                 //3.新增
 22                 #region
 23                 if (shuru == "1")
 24                 {
 25                     for (; ; )
 26                     {
 27                         shuxing bb = new shuxing();
 28                         for (; ; )
 29                         {
 30                             Console.Write("请输入学生编号:");
 31                             bb.code = Console.ReadLine();
 32                             List<student> list = new studentway().chaxun1(bb.code);
 33                             if (list.Count != 0)
 34                             {
 35                                 Console.WriteLine("该学生已存在,请重新输入!");
 36                             }
 37                             else
 38                             {
 39                                 break;
 40                             }
 41                         }
 42                         for (; ; )
 43                         {
 44                             Console.Write("请输入学生姓名:");
 45                             bb.name = Console.ReadLine();
 46                             if (bb.name == "")
 47                             {
 48                                 Console.WriteLine("学生姓名不能为空,请重新输入!");
 49                             }
 50                             else
 51                             {
 52                                 break;
 53                             }
 54                         }
 55                         for (; ; )
 56                         {
 57                             Console.Write("请输入学生性别:");
 58                             string a1 = Console.ReadLine();
 59                             if (a1 == "男")
 60                             {
 61                                 bb.sex = true;
 62                                 break;
 63                             }
 64                             else if (a1 == "女")
 65                             {
 66                                 bb.sex = false;
 67                                 break;
 68                             }
 69                             else
 70                             {
 71                                 Console.WriteLine("输入错误请重新输入!");
 72                             }
 73                         }
 74                         for (; ; )
 75                         {
 76                             try
 77                             {
 78                                 Console.Write("请输入学生生日(XXXX-XX-XX):");
 79                                 bb.birthday = Convert.ToDateTime(Console.ReadLine());
 80                                 break;
 81                             }
 82                             catch
 83                             {
 84                                 Console.WriteLine("输入错误请重新输入!");
 85                             }
 86                         }
 87                         for (; ; )
 88                         {
 89                             Console.Write("请输入学生课程名称:");
 90                             bb.subjectname = Console.ReadLine();
 91                             SqlConnection conn = new SqlConnection("server=.;database=ADOkaoshi;user=sa;pwd=123;");
 92                             SqlCommand com = conn.CreateCommand();
 93                             com.CommandText = "select * from Ssubject where SubjectName like @subject";
 94                             com.Parameters.Clear();
 95                             com.Parameters.Add("@subject", "%" + bb.subjectname + "%");
 96                             conn.Open();
 97                             SqlDataReader a2 = com.ExecuteReader();
 98                             if (a2.HasRows)
 99                             {
100                                 a2.Read();
101                                 bb.subjectcode = a2["SubjectCode"].ToString();
102                                 break;
103                             }
104                             else
105                             {
106                                 Console.WriteLine("不存在这门课程,请重新输入!");
107                             }
108                         }
109
110                         studentway stuway = new studentway();
111                         dayin dayinX = new dayin();
112                         dayinX.dayin2(bb.code, bb.name, bb.sex, bb.birthday, bb.subjectname);
113                         Console.Write("您是否要添加本条数据(Y/N):");
114                         string panduan = Console.ReadLine();
115                         if (panduan == "Y")
116                         {
117                             stuway.tianjia(bb.code, bb.name, bb.sex, bb.birthday, bb.subjectcode);
118                             Console.Clear();
119                             dayinX.dayin1();
120                             Console.WriteLine("添加成功!");
121                             break;
122                         }
123                         else
124                         {
125                             Console.WriteLine("请重新输入信息!");
126                         }
127
128                     }
129                 }
130                 #endregion
131
132                 //4.修改
133                 #region
134                 else if (shuru == "2")
135                 {
136                     for (; ; )
137                     {
138                         shuxing bb = new shuxing();
139                         for (; ; )
140                         {
141                             Console.Write("请输入学生编号:");
142                             bb.code = Console.ReadLine();
143                             List<student> list = new studentway().chaxun1(bb.code);
144                             if (list.Count != 0)
145                             {
146                                 break;
147                             }
148                             else
149                             {
150                                 Console.WriteLine("该学生不存在,请重新输入!");
151                             }
152                         }
153                         for (; ; )
154                         {
155                             Console.Write("请输入修改后的学生姓名:");
156                             bb.name = Console.ReadLine();
157                             if (bb.name == "")
158                             {
159                                 Console.WriteLine("学生姓名不能为空,请重新输入!");
160                             }
161                             else
162                             {
163                                 break;
164                             }
165                         }
166                         for (; ; )
167                         {
168                             Console.Write("请输入修改后的学生性别:");
169                             string a1 = Console.ReadLine();
170                             if (a1 == "男")
171                             {
172                                 bb.sex = true;
173                                 break;
174                             }
175                             else if (a1 == "女")
176                             {
177                                 bb.sex = false;
178                                 break;
179                             }
180                             else
181                             {
182                                 Console.WriteLine("输入错误请重新输入!");
183                             }
184                         }
185                         for (; ; )
186                         {
187                             try
188                             {
189                                 Console.Write("请输入修改后的学生生日(XXXX-XX-XX):");
190                                 bb.birthday = Convert.ToDateTime(Console.ReadLine());
191                                 break;
192                             }
193                             catch
194                             {
195                                 Console.WriteLine("输入错误请重新输入!");
196                             }
197                         }
198                         for (; ; )
199                         {
200                             Console.Write("请输入修改后的学生课程名称:");
201                             bb.subjectname = Console.ReadLine();
202                             SqlConnection conn = new SqlConnection("server=.;database=ADOkaoshi;user=sa;pwd=123;");
203                             SqlCommand com = conn.CreateCommand();
204                             com.CommandText = "select * from Ssubject where SubjectName like @subject";
205                             com.Parameters.Clear();
206                             com.Parameters.Add("@subject", "%" + bb.subjectname + "%");
207                             conn.Open();
208                             SqlDataReader a2 = com.ExecuteReader();
209                             if (a2.HasRows)
210                             {
211                                 a2.Read();
212                                 bb.subjectcode = a2["SubjectCode"].ToString();
213                                 break;
214                             }
215                             else
216                             {
217                                 Console.WriteLine("不存在这门课程,请重新输入!");
218                             }
219                         }
220                         studentway stuway = new studentway();
221                         dayin dayinX = new dayin();
222                         dayinX.dayin2(bb.code, bb.name, bb.sex, bb.birthday, bb.subjectname);
223                         Console.Write("您是否要修改为本条数据(Y/N):");
224                         string panduan = Console.ReadLine();
225                         if (panduan == "Y")
226                         {
227                             stuway.xiugai(bb.code, bb.name, bb.sex, bb.birthday, bb.subjectcode);
228                             Console.Clear();
229                             dayinX.dayin1();
230                             Console.WriteLine("修改成功!");
231                             break;
232                         }
233                         else
234                         {
235                             Console.WriteLine("请重新输入信息!");
236                         }
237                     }
238                 }
239                 #endregion
240
241                 //5.删除
242                 #region
243                 else if (shuru == "3")
244                 {
245                     for (; ; )
246                     {
247                         shuxing bb = new shuxing();
248                         for (; ; )
249                         {
250                             Console.Write("请输入学生编号:");
251                             bb.code = Console.ReadLine();
252                             List<student> list = new studentway().chaxun1(bb.code);
253                             if (list.Count != 0)
254                             {
255                                 break;
256                             }
257                             else
258                             {
259                                 Console.WriteLine("该学生不存在,请重新输入!");
260                             }
261                         }
262                         studentway stuway = new studentway();
263                         dayin dayinX = new dayin();
264                         Console.Write("您是否要删除编号为" + bb.code + "的数据(Y/N):");
265                         string panduan = Console.ReadLine();
266                         if (panduan == "Y")
267                         {
268                             stuway.shanchu(bb.code);
269                             Console.Clear();
270                             dayinX.dayin1();
271                             Console.WriteLine("删除成功!");
272                             break;
273                         }
274                         else
275                         {
276                             Console.WriteLine("请重新输入信息!");
277                         }
278                     }
279                 }
280                 #endregion
281             }
时间: 2024-10-12 12:50:44

一个ADO的综合小练习的相关文章

CISCO综合小实验

前言: 今天分享我自己做的一个思科综合小实验,难度CCNA级别.主要涉及以下知识点:VLAN.DHCP.STP(spanning-tree)+HRSP(standby).OSPF.NAT.ACL.实验用的是GNS3模拟器.实验如下: 实验目的: 最终的实验目的是PC能够访问R2的loopback接口(在这里模拟的是互联网).具体实现细节请根据配置来自行判断.有疑问可以在下面留言,欢迎共同探讨. 实验拓扑图: 具体配置: PC1 PC1#conf terminal PC1(config)#no i

一个php多态性的小例子

多态性在 OO 中指 "语言具有以不同方式处理不同类型对象的能力",但 PHP 是弱类型语言,在这一点上就比较弱,仅有 instance of 可以用于判断对象的类型 多态性的优点:让代码更接近生活中的真实情况 一下是一个非常简单的多态性例子,描述在电脑上安装不同操作系统,linux, OS X, windows 和 computer 是两种不同类型的对象. interface os{ function name(); function creator(); } class linux

一个随机上翻的小效果

html <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="Content-Type" content="text/html; charset=uft-8"> <meta name="keywords

现学现卖的一个“快递查询“的小程序开发

最近微信小程序是炒的如火如荼,各种热门, 正好赶上这个热潮,这几天先把小程序技术文档看了个遍,结合教程手写了一个案例.今天写了一个快递查询的小demo,大致分为三步 产品需求,准备api,代码编写. 第一步:产品需求,我们需要实现如下图的一个功能,在文本框输入快递单号,点击查询,下面出来我们需要的快递信息 第二步:准备 我们先找一个快递的api接口,通过http://apistore.baidu.com/我们可以看到很多的api,我们找一个快递查询的 我们可以看到有接口地址,和一些参数.做好这个

小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和

小易邀请你玩一个数字游戏,小易给你一系列的整数.你们俩使用这些整数玩游戏.每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字. 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和的数字中的最小数. 输入描述: 输入第一行为数字个数n (n ≤ 20) 第二行为n个数xi (1

一个字符编码处理小程序(一)

一个字符编码处理小程序(一)以前与他人合作申请了一个汉字输入法编码专利(YXY),现在决定继续在此基础上进行一些开发工作,要将它的编码拆分成前.中.后三个子串,以便作进一步的处理.用户故事可以表达为:作为一个代码的开发人员,需要将YXY编码拆分成前.中.后三个子字符串,以便作进一步的汉字分析处理.下面对照个人开发流程,进行开发工作:一. 计划估计这个任务需要多少开发时间.由于利用业余时间开发,开发时间呈现碎片化的状况:故这里只是估计纯的开发时间,大约需要两周.二. 开发1. 分析需求出入内容:Y

开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码

开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码. 开源地址: https://github.com/jkpang/PPRows

vue示例之transition-另外发现一个vue(可能的)小bug

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link href="//cdn.bootcss.com/animate.css/3.5.2/animate.css" rel="stylesheet"> <style&

分析一个类似于jquery的小框架

在网上下了一个类似于jQuery的小框架,分析源码,看看怎么写框架. 选择器Select //用沙箱闭包其整个代码,只有itcast和I暴漏在全局作用域 (function( window , undefined){ //Itcast函数,参数:selector.返回值一个Itcast对象,功能:new Itcast.prototype.init() function Itcast(selector){ return new Itcast.prototype.init(); } // Itcas