概述:控制台程序,sqlserver数据库,库D1,表T1。

学生信息表:

表结构:

其中id自动编号。

主程序先完成框架,循环录入选项进行操作:

 namespace ConsoleApplication1
{
class Program
{
static void Select_all()
{
Console.WriteLine("Select_all");
}
static void Select_one()
{
Console.WriteLine("Select_one");
}
static void Add_one()
{
Console.WriteLine("Add_one");
}
static void Delete_one()
{
Console.WriteLine("Delete_one");
}
static void Modify_one()
{
Console.WriteLine("Modify_one");
}
static void Main(string[] args)
{
int a;
do
{
Console.WriteLine("请输入你要执行的操作:\n1、显示全部学生\n2、显示单个学生\n3、添加新学生\n4、删除学生数据\n5、修改学生数据\n0、退出!");
a = int.Parse(Console.ReadLine());
switch(a)
{
case :
Select_all();
break;
case :
Select_one();
break;
case :
Add_one();
break;
case :
Delete_one();
break;
case :
Modify_one();
break;
default:
Console.WriteLine("输入有误!");
break; }
}
while (a != );
}
}
}

测试效果如下:

为项目添加EF框架(过程略,可参见相关博文)

结果如下:

添加业务逻辑层类:

代码如下:

 namespace ConsoleApplication1.Bll
{
class Student
{
public static List<t1> get_All()
{
var d1=new D1();
return d1.t1.ToList();
}
public static t1 get_One(int id)
{
var d1 = new D1();
return d1.t1.Where(x => x.id == id).FirstOrDefault();
}
public static void add_One(t1 x)
{
var d1 = new D1();
d1.t1.Add(x);
d1.SaveChanges();
}
public static void del_One(int x)
{
var d1 = new D1();
var a = d1.t1.Where(t => t.id == x).FirstOrDefault();
if(a!=null)
{
d1.t1.Remove(a);
d1.SaveChanges();
}
}
public static void modi_One(t1 x)
{
var d1 = new D1();
var t = d1.t1.Where(xx=>xx.id==x.id).First();
if(t!=null)
{
t.xm = x.xm;
t.nl = x.nl;
}
d1.SaveChanges();
}
}
}

修改完善主程序,代码如下:

 class Program
{
static void Select_all()
{
//Console.WriteLine("Select_all");
List<t1> a = Student.get_All();
Console.Write("学号\t姓名\t年龄\n");
foreach (var item in a)
{
Console.Write(item.id + "\t" + item.xm + "\t" + item.nl+"\n");
}
}
static void Select_one()
{
//Console.WriteLine("Select_one");
int no;
Console.WriteLine("输入要查询的学生学号:");
no=int.Parse(Console.ReadLine());
t1 a = Student.get_One(no);
if(a!=null)
{
Console.Write("学号\t姓名\t年龄\n");
Console.Write(a.id + "\t" + a.xm + "\t" + a.nl + "\n");
}
else
{
Console.WriteLine("查无此人");
}
}
static void Add_one()
{
//Console.WriteLine("Add_one");
t1 a = new t1();
Console.WriteLine("输入要添加的学生姓名:");
a.xm=Console.ReadLine();
Console.WriteLine("输入要添加的学生年龄:");
a.nl=short.Parse(Console.ReadLine());
Student.add_One(a);
}
static void Delete_one()
{
//Console.WriteLine("Delete_one");
int a;
Console.WriteLine("输入要删除的学生学号:");
a = int.Parse(Console.ReadLine());
Student.del_One(a);
}
static void Modify_one()
{
//Console.WriteLine("Modify_one");
t1 a = new t1();
Console.WriteLine("输入要修改的学生学号:");
a.id = int.Parse(Console.ReadLine());
Console.WriteLine("输入要修改的学生姓名:");
a.xm = Console.ReadLine();
Console.WriteLine("输入要修改的学生年龄:");
a.nl = short.Parse(Console.ReadLine());
Student.modi_One(a);
}
static void Main(string[] args)
{
int a;
do
{
Console.WriteLine("请输入你要执行的操作:\n1、显示全部学生\n2、显示单个学生\n3、添加新学生\n4、删除学生数据\n5、修改学生数据\n0、退出!");
a = int.Parse(Console.ReadLine());
switch(a)
{
case :
break;
case :
Select_all();
break;
case :
Select_one();
break;
case :
Add_one();
break;
case :
Delete_one();
break;
case :
Modify_one();
break;
default:
Console.WriteLine("输入有误!");
break; }
}
while (a != );
}
}

至此,程序工作正常。可自行调试。

List和模型学完后的练习的更多相关文章

  1. 一些Java中不为人知的特殊方法,学完后面试官可能都没你知道的多!

    如果你用过反射并且执行过getDeclaredMethods方法的话,你可能会感到很吃惊.你会发现出现了很多源代码里没有的方法.如果你看一下这些方法的修饰符的话,可能会发现里面有些方法是volatil ...

  2. flexbox-CSS3弹性盒模型flexbox完整版教程

    原文链接:http://caibaojian.com/flexbox-guide.html flexbox-CSS3弹性盒模型flexbox完整版教程 A-A+ 前端博客•2014-05-08•前端开 ...

  3. 学Python后到底能干什么?

    Python是一种什么语言? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Jav ...

  4. React Native (0.57)开发环境搭建(注意:Node不要随便更新到最新版,更新完后莫名其妙的问题一大堆)

    搭建开发环境 一.安装依赖 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. 1.首先安装 Homebrew 2.安装 Node, Watchm ...

  5. 在w3cschool学完html,css,javascript,jquery以后,还是不会做前端怎么办?

    w3cschool是一个非盈利性的在线技术学习网站,提供按W3C标准编写的基础教程.完整的看完w3cschool上面的手册,可以基本掌握编程语法.基础性的东西通常都会比较零散,因此,在学习一段时间后, ...

  6. 从工厂流水线小妹到Google上班程序媛,看完后,我跪服了!

    阅读本文大概需要 10.2 分钟. 文作者:Ling Sun 原文链接:https://www.zhihu.com/question/68154951/answer/546265013 我家境很不好, ...

  7. 零基础学完Python的7大就业方向,哪个赚钱多?

    “ 我想学 Python,但是学完 Python 后都能干啥 ?” “ 现在学 Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少 Python 的初学者,都会遇到上面的这些问 ...

  8. Golang入门(3):一天学完GO的进阶语法

    摘要 在上一篇文章中,我们聊了聊Golang中的一些基础的语法,如变量的定义.条件语句.循环语句等等.他们和其他语言很相似,我们只需要看一看它们之间的区别,就差不多可以掌握了,所以作者称它们为&quo ...

  9. Golang入门(2):一天学完GO的基本语法

    摘要 在配置好环境之后,要研究的就是这个语言的语法了.在这篇文章中,作者希望可以简单的介绍一下Golang的各种语法,并与C和Java作一些简单的对比以加深记忆.因为这篇文章只是入门Golang的第二 ...

随机推荐

  1. 虚拟机安装苹果macOS系统

    Windows10系统虚拟机vmware15上装macos系统 一.简要步骤: 1.准备软件. 2.关闭VMware服务: 3.解压unlocker,运行文件: 4.启动vmware,选择macOS镜 ...

  2. WAF的部署方式——有直路部署和旁路部署

    随着电子商务.网上银行.电子政务的盛行,WEB服务器承载的业务价值越来越高,WEB服务器所面临的安全威胁也随之增大,因此,针对WEB应用层的防御成为必然趋势,WAF(WebApplicationFir ...

  3. Rust的多线程程序

    一定要用闭包? 感觉有点过了. use std::thread; use std::time::Duration; fn main() { let v = vec![, , ]; let handle ...

  4. 201871010109-胡欢欢《面向对象程序设计(java)》第6-7周学习总结

    实验六 继承定义与使用 实验时间 2019-9-29 第一部分:理论部分. 1.继承:已有类来构建新类的一种机制.档定义了一个新类继承另一个类时,这个新类就继承了这个类的方法和域,同时在新类中添加新的 ...

  5. 【Spring IoC】依赖注入DI(四)

    平常的Java开发中,程序员在某个类中需要依赖其它类的方法.通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由程 ...

  6. keil mdk+stm32的ac5和 ac6两个编译器下的字节对齐操作方法

    最近在使用ac6.9的编译器,编译速度是真的很快,使用stm32的hal库编译速度也比ac5的编译器快很多.本文试验stm32中字节对齐的代码测试,主要是结构体,因为结构体中实际项目中用到最多,同时在 ...

  7. SQL基础知识整理

    建议:关键字和函数名全部大写:数据库名称.表名称.字段名称全部小写:分号结尾.但是大小写语句不区分,本人讨厌大写(英语菜,不能一眼看出内容),所以全部小写.[]看情况可有可无,{}花括号的内容必须要有 ...

  8. JOI2013-2019题解

    JOI2013-2019题解 Link

  9. 关于c语言的逻辑短路规则

    原来的代码是 if (temp == 3 && (a % b != 0 || b == 0 )){ printf("go"); } dev-c 报错: progra ...

  10. 苹果开发之App签名

    如果你的Apple ID账号(可使用邮箱来注册)为Apple developer类型的话,登录之后是看不到Certificates, Indentifiers & Profiles信息的 Ap ...