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 == "")
{
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("编号\t姓名\t性别\t年龄\t生日\t专业");
Console.WriteLine(sti.Code + "\t" + sti.Name + "\t" + sti.Sexstr + "\t" + sti.Birthdaystr + "\t" + 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 == "")
{
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("编号\t姓名\t性别\t年龄\t生日\t专业");
Console.WriteLine(stupate.Code + "\t" + stupate.Name + "\t" + stupate.Sexstr + "\t" + stupate.Birthdaystr + "\t" + 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 == "")
{
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("编号\t姓名\t性别\t年龄\t生日\t专业");
Console.WriteLine(st.Code + "\t" + st.Name + "\t" + st.Sexstr + "\t" + st.Birthdaystr + "\t" + 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("编号\t姓名\t性别\t年龄\t生日\t专业");
//遍历数据打印
StudentData st = new StudentData();
List<Student> sd = st.SelectAll();
int count = ;
int sum = ;
foreach (Student s in sd)
{
Console.WriteLine(s.Code + "\t" + s.Name + "\t" + s.Sexstr + "\t" + s.Age + "\t" + s.Birthdaystr + "\t" + 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[].ToString().Substring();
a = "S" + ((Convert.ToInt32(b) + ).ToString(""));
}
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表数据,并提示删除成功,继续回到“二”等待用户继续操作。

ADO.net之综合演练的更多相关文章

  1. C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 呃 也有半 ...

  2. SILVERLIGHT 应急卫生模拟演练项目之loading界面实现

    第一次在博客园写文章 俺是菜鸟 有不足之处还请大佬们多多指教 第一次也不知道该写啥 俺就拿自己最近做的一个项目 来细说吧 俺们公司是做医疗卫生方面的  其中有一块涉及到应急卫生模拟演练方面 这块分到我 ...

  3. C#与数据库访问技术总结(十八)

    ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...

  4. 大学生IT博客大赛最技术50强与最生活10强文章

    姓名 学校 文章标题 文章地址 刘成伟 井冈山大学 [mystery]-linux黑客之网络嗅探底层原理 http://infohacker.blog.51cto.com/6751239/115511 ...

  5. 【2-23】分支语句(switch…case)及循环语句

    Switch-case分支语句与if语句作用相同,但需将情况都罗列出比较麻烦所以不常用. 其基本结构是: Switch(一个变量值) { Case 值1:要执行的代码段:break; Case 值2: ...

  6. 【2017-2-17】VS基本应用及C#基础第一节(定义变量、输入及输出)

    一VS基本应用 (一)新建项目 新建项目可有多种方法例如: 1.  在VS起始页面建立新项目 2.  在集成环境中,通过"文件"/"新建"/"项目&q ...

  7. 构建微服务开发环境8————Hello 微服务

    [内容指引] 1.用IDEA打开微服务项目; 2.更新Maven依赖: 3.IntelliJ IDEA JDK配置; 4.修改代码: 5.运行微服务: 6.将代码变更提交到Github. 经过前面的努 ...

  8. Spring Boot 2.x 系列教程:WebFlux 系列教程大纲(一)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! WebFlux 系列教程大纲 一.背景 大家都知道,Sprin ...

  9. C# 使用Xamarin开发Android应用程序

    C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.) 摘要: 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://gi ...

随机推荐

  1. Azure SQL 数据库仓库Data Warehouse (3) DWU

    <Windows Azure Platform 系列文章目录> 在笔者的上一篇文章中:Azure SQL 数据库仓库Data Warehouse (2) 架构 介绍了SQL DW的工作节点 ...

  2. 分页sql写法【只用最新的】

      offset m rows   FETCH NEXT n ROWS ONLY m=(pageindex-1)*pagesize n=pagesize sql server 2012以上适用.

  3. IDEA创建Springmvc项目

    项目主要步骤如下: 1.创建一个javaweb动态项目 2.导入springmvc demo所需要的jar包 3.生成项目war包 4.配置项目tomacat服务器 5.配置web.xml文件 6.编 ...

  4. LeetCode——15. 3Sum

    一.题目链接:https://leetcode.com/problems/3sum/ 二.题目大意: 3和问题是一个比较经典的问题,它可以看做是由2和问题(见http://www.cnblogs.co ...

  5. C++11--编译器生成的函数

    using namespace std; class Dog {}; /* C++ 03 * 1 默认构造函数(只有当用户没有声明任何构造函数) * 2 拷贝构造(只有当用户没有声明5,6),扩展到C ...

  6. PAT 甲级 1011 World Cup Betting (20)(20 分)

    1011 World Cup Betting (20)(20 分)提问 With the 2010 FIFA World Cup running, football fans the world ov ...

  7. springboot(整合多数据源demo,aop,定时任务,异步方法调用,以及获取properties中自定义的变量值)

    有这么一个需求 每个部门,需要操作的数据库不同,A部门要将数据放test数据库,B 部门数据 要放在test1数据库 同一个项目 需要整合 多个数据源 上传个demo 方便自己以后回看!!!!!!!! ...

  8. Java学习——this、this()、super 和 super()的使用

    编写程序:说明 this.super 和 super()的用法.程序首先定义 Point(点)类,然后创建点的子类 Line(线)),最后通过 LX7_3 类输出线段的长度. package Pack ...

  9. 云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算

    云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感 ...

  10. centos 7扩展磁盘分区容量

    一.fdisk -l 查看磁盘空间大小 二. 1.fdisk /dev/sda 增加分区 2.判断应增加的分区号 键入n,增加一个分区 3.键入p,主分区,并键入(编号) 4.起始扇区和结束扇区(默认 ...