List和模型学完后的练习
概述:控制台程序,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和模型学完后的练习的更多相关文章
- 一些Java中不为人知的特殊方法,学完后面试官可能都没你知道的多!
如果你用过反射并且执行过getDeclaredMethods方法的话,你可能会感到很吃惊.你会发现出现了很多源代码里没有的方法.如果你看一下这些方法的修饰符的话,可能会发现里面有些方法是volatil ...
- flexbox-CSS3弹性盒模型flexbox完整版教程
原文链接:http://caibaojian.com/flexbox-guide.html flexbox-CSS3弹性盒模型flexbox完整版教程 A-A+ 前端博客•2014-05-08•前端开 ...
- 学Python后到底能干什么?
Python是一种什么语言? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的Jav ...
- React Native (0.57)开发环境搭建(注意:Node不要随便更新到最新版,更新完后莫名其妙的问题一大堆)
搭建开发环境 一.安装依赖 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. 1.首先安装 Homebrew 2.安装 Node, Watchm ...
- 在w3cschool学完html,css,javascript,jquery以后,还是不会做前端怎么办?
w3cschool是一个非盈利性的在线技术学习网站,提供按W3C标准编写的基础教程.完整的看完w3cschool上面的手册,可以基本掌握编程语法.基础性的东西通常都会比较零散,因此,在学习一段时间后, ...
- 从工厂流水线小妹到Google上班程序媛,看完后,我跪服了!
阅读本文大概需要 10.2 分钟. 文作者:Ling Sun 原文链接:https://www.zhihu.com/question/68154951/answer/546265013 我家境很不好, ...
- 零基础学完Python的7大就业方向,哪个赚钱多?
“ 我想学 Python,但是学完 Python 后都能干啥 ?” “ 现在学 Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少 Python 的初学者,都会遇到上面的这些问 ...
- Golang入门(3):一天学完GO的进阶语法
摘要 在上一篇文章中,我们聊了聊Golang中的一些基础的语法,如变量的定义.条件语句.循环语句等等.他们和其他语言很相似,我们只需要看一看它们之间的区别,就差不多可以掌握了,所以作者称它们为&quo ...
- Golang入门(2):一天学完GO的基本语法
摘要 在配置好环境之后,要研究的就是这个语言的语法了.在这篇文章中,作者希望可以简单的介绍一下Golang的各种语法,并与C和Java作一些简单的对比以加深记忆.因为这篇文章只是入门Golang的第二 ...
随机推荐
- Linux内核编程、调试技巧小集【转】
转自:https://www.cnblogs.com/arnoldlu/p/7152488.html 1. 内核中通过lookup_symbol_name获取函数名称 内核中很多结构体成员是函数,有时 ...
- Redis数据库详解
NoSQL 若杀死进程应使用pkill 数据设计模式:分布式.非关系型.不提供ACID 特性:简单数据模型.源数据和应用数据分离.弱一致性 优势: 避免不必要的复杂性 高吞吐量, 高 水平扩展能力和低 ...
- vue报错 Uncaught (in promise) NavigationDuplicated {_name:""NavigationDuplicated"... 的解决方法
在进行跳转的时候报错 app.js:87499 Uncaught (in promise) NavigationDuplicated?{_name: "NavigationDuplicate ...
- 【使用篇二】SpringBoot整合Listener(3)
两种方式: 通过注解扫描完成 Listener 组件的注册 通过方法完成 Listener 组件注册 一.通过注解扫描完成 Listener 组件的注册 1. 编写Listener类 /*** spr ...
- 【oracle】merge into 函数
- 11/10 <priorityQueue> 215 347
215. Kth Largest Element in an Array 快速排序法,选择一个数,比这个数大的交换到左边,比这个数小的交换到右边. class Solution { public in ...
- 11/3 <binary search>
278. First Bad Version 二分法,如果isBadVersion返回true则坏版本在左边,right = mid,否则 left = mid + 1. 注意溢出问题 left+(r ...
- B1023 组个最小数 (20 分)
一.技术总结 这一题主要的处理点是数字0别在第一个位置输出,这里提供两种解决思路. 一个是直接在一个for循环里面只要输出了一个位置后直接判断,是否了0的数字可以输出. 还有一个就是直接for循环一次 ...
- luogu P2221 [HAOI2012]高速公路题解
题面 很套路的拆式子然后线段树上维护区间和的题.一般都是把式子拆成区间内几个形如\(\sum i*a_i, \sum i^2 * a_i\)的式子相加减的形式. 考虑一次询问[l,r]的答案怎么算: ...
- [LeetCode] 727. Minimum Window Subsequence 最小窗口序列
Given strings S and T, find the minimum (contiguous) substring W of S, so that T is a subsequence of ...