概述:控制台程序,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. php导出百万数据到csv

    <?php set_time_limit(0); // 设置超时 ini_set('memory_limit', '100M'); // 设置最大使用的内存 header("Conte ...

  2. [小程序]微信小程序获取input并发送网络请求

    1. 获取输入框数据wxml中的input上增加bindinput属性,和方法值在js部分定义与之对应的方法,只要在输入的时候,数据就会绑定调用到该方法,存入data属性变量中 2. 调用get请求发 ...

  3. time,datetime,random,os,sys,hashlib,logging,configparser,re模块

    #-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...

  4. (九)OpenStack---M版---双节点搭建---Swift(单节点)安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本次搭建仅采用Compute单节点做swift组件 1.Controller安装并配置控制节点 ...

  5. FFMPEG+SDL实现视频播放器

    一. 前言 基于学习ffmpeg和sdl,写一个视频播放器是个不错的练手项目. 视频播放器的原理很多人的博客都有讲过,这里出于自己总结的目的,还是会做一些概况. 二. 视频播放器基本原理 2.1 解封 ...

  6. JS高阶---对象

    四个问题 问题拓展:对象访问方式 1.属性名包含特殊字符,例如空格.-等 2.变量名不确定 变量名不确定时需要使用['属性名'] .

  7. Java基础的容错

    新手会有一些常犯的过失,一般一个新手在学习Java开发的时分,往往会挑选买书去学习,首要这样的学习功率是非常差的,比如在学习html,css的时分,是彻底不必看书的.书里大多数东西你都不了解.这是新手 ...

  8. JAVA还没死的原因

    尽管 TIOBE 指数显示,Java 是一门正在衰落的语言,但它仍然稳居榜首.从 2016 年到 2017 年间,这个数字可能会大幅下降,但最近下降速度有所放缓:在 2018 年 10 月到 2019 ...

  9. A1048 Find Coins (25 分)

    一.技术总结 首先初看题目有点没读懂,题目大致意思是小明有很多个硬币不同面值的,但是现在他要到商家这里换新的面值, 且商家有一个规定,一个新的硬币必须要你两个硬币面值相加等于的来换,这一有第一个问题产 ...

  10. wpf “{DependencyProperty.UnsetValue}”不是属性“Background”的有效值。异常

    , 在wpf模板中, 有一个Background绑定的值不存在导致的异常, 我的是有这个没有导致的错误,  自己添加之后就没有了