winform基础——实现简易赈灾物资发放登记系统





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApplication10
{
class Program
{
public const string CONNSTRING = "server=.;database=zhenzai;uid=sa;pwd=123";
static void Main(string[] args)
{
//标题栏
Console.WriteLine("****************赈灾物资发放登记系统*******************");
Console.WriteLine("1.物资库存维护");
Console.WriteLine("2.物资库存列表");
Console.WriteLine("3.物资发放");
Console.WriteLine("4.物资发放统计");
Console.WriteLine("5.退出系统");
Console.WriteLine("*******************************************************");
//进入循环 可以循环输入数字进入系统
while (true)
{
string a = Console.ReadLine();
switch (a)
{
case "1":
ChaInfo(); //输入1 进入库存管理函数
break;
case "2":
ShowKc(); //输入2 进入显示库存函数
break;
case "3":
fafang(); //输入3 进入物资发放函数
break;
case "4":
FaTongji(); // 输入4 进入显示发放物资函数
break;
default:
break;
}
if (a=="5")
{
break; // 输入5 跳出循环
}
}
}
/// <summary>
/// 库存管理函数(库存输入)
/// </summary>
public static void ChaInfo()
{
Console.Write("请输入物资名称:");
string name = Console.ReadLine();
Console.Write("请输入库存数量:");
string num = Console.ReadLine();
Console.Write("请输入计量单位:");
string danwei = Console.ReadLine();
Console.Write("请输入物资单价:");
string jiage = Console.ReadLine();
SqlConnection conn = new SqlConnection(CONNSTRING);
//为了防止添加出错链接关不掉,使用try-catch-finally
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into kc values('" + name + "','" + num + "','" + danwei + "','" + jiage + "')";
cmd.ExecuteNonQuery();
Console.WriteLine("添加成功!");
}
catch
{
Console.WriteLine("添加出错");
}
finally
{
conn.Close();
}
Console.WriteLine("*******************************************************");
}
/// <summary>
/// 显示库存函数
/// </summary>
public static void ShowKc()
{
Console.WriteLine("物资库存列表如下:");
Console.WriteLine("**********************************************************");
Console.WriteLine("物资名称\t库存数量\t单价(元)");
SqlConnection conn = new SqlConnection(CONNSTRING);
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from kc";
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr[0].ToString() + "\t\t" + dr[1].ToString() + dr[2].ToString() + "\t\t" + dr[3].ToString() + "\n");
}
}
finally
{
conn.Close();
}
Console.WriteLine("*******************************************************");
}
/// <summary>
/// 发放物资函数
/// </summary>
public static void fafang()
{
Console.Write("请输入发放物资:");
string ss = Console.ReadLine();
SqlConnection conn = new SqlConnection(CONNSTRING);
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from kc where WzName='" + ss + "'";
SqlDataReader dr = cmd.ExecuteReader();
string a, e;
int b;
while (dr.Read())
{
a = dr[3].ToString();
Console.WriteLine("当前单价:" + a);
b = Convert.ToInt32(dr[1]);
e = dr[2].ToString(); //记录单位
Console.WriteLine("当前库存:" + b + e);
Console.Write("请输入发放数量:");
int c = Convert.ToInt32(Console.ReadLine());
Console.Write("接收人:");
string d = Console.ReadLine();
if (c > b) //判断如果发放数量大于库存数量
{
Console.WriteLine("库存数量不足!");
break;
}
else //否则执行以下两个函数
{
InsertFa(ss, a, c, d, e); //向fafang表中插入数据
JianKc(ss, b, c); // 更新库存表中相应库存数量
Console.WriteLine("发放成功!");
}
}
}
finally
{
conn.Close();
}
Console.WriteLine("*******************************************************");
}
/// <summary>
/// 更新fafang表
/// </summary>
/// <param name="ss">物资名称</param>
/// <param name="a">当前单价</param>
/// <param name="c">发放数量</param>
/// <param name="d">接收人</param>
/// <param name="e">单位</param>
public static void InsertFa(string ss,string a,int c,string d,string e)
{
DateTime dt = DateTime.Now;
string aa = dt.ToString("yyyy年MM月dd日");
SqlConnection conn = new SqlConnection(CONNSTRING);
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into fafang values('" + ss + "'," + c + ",'" + e + "'," + a + ",'" + aa + "','" + d + "')";
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
/// <summary>
/// 库存更新函数
/// </summary>
/// <param name="ss">物资名称</param>
/// <param name="b">原来库存数量</param>
/// <param name="c">发放数量</param>
public static void JianKc(string ss,int b,int c)
{
SqlConnection conn = new SqlConnection(CONNSTRING);
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "update kc set num=" + (b - c) + "where wzname='" + ss + "'";
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
/// <summary>
/// 显示fafang表中的数据
/// </summary>
public static void FaTongji()
{
SqlConnection conn = new SqlConnection(CONNSTRING);
try
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from fafang";
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr[1].ToString() + "\t" + dr[2].ToString() + dr[3].ToString() + "\t" + dr[4].ToString() + "\t" + dr[5].ToString() + "\t" + dr[6].ToString() + "\n");
}
}
finally
{
conn.Close();
}
Console.WriteLine("*******************************************************");
}
}
}
winform基础——实现简易赈灾物资发放登记系统的更多相关文章
- Winform开发框架之简易工作流设计(转自 伍华聪博客)
Winform开发框架之简易工作流设计 一讲到工作流,很多人第一反应就是这个东西很深奥,有时候又觉得离我们较为遥远,确实完善的工作流设计很多方面,而正是由于需要兼顾很多方面,一般通用的工作流都难做到尽 ...
- 黑马程序员+Winform基础(上)
黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...
- 【2017-04-24】winform基础、登录窗口、窗口属性
一.winform基础 客户端应用程序:C/S 客户端应用程序可以操作用户电脑中的文件,代码要在用户电脑上执行,吃用户电脑配置. 窗体是由控件和属性做出来的 控件:窗体里所放的东西."视图 ...
- 【转】WinForm基础
winform基础 先修基础:C#语法基础和面向对象编程 1.Winform创建解决方案 2.Winform窗体 3.MessageBOx 4.Winform登录.控制软件只运行一次.回车登录 5.W ...
- php+redis 简易的实现文章发布系统(用户投票系统)
/** * @data 文章发布 * 文章详情散列表中递增ID,讲文章发布者ID写入投票用户集合中,设置投票时间为一周 * 讲文章内容写入文章散列中,讲文章写入文章评分有序集合和文章发布有序集合中 * ...
- Angular7_人员登记系统
1.ts public peopleInfo: any = { username: 'kxy', sex: '男', cityList: ['汕头', '广州', '茂名'], city: '汕头', ...
- 如何用chrome注册版权登记系统
版权登记系统的网址: http://apply.ccopyright.com.cn/goadatadic/registergetList.do 打开网站,一股古朴的气息扑面而来,嗯,一看就是IE时代的 ...
- 【原创 Hadoop&Spark 动手实践 12】Spark MLLib 基础、应用与信用卡欺诈检测系统动手实践
[原创 Hadoop&Spark 动手实践 12]Spark MLLib 基础.应用与信用卡欺诈检测系统动手实践
- Android零基础入门第2节:Android 系统架构和应用组件那些事
原文:Android零基础入门第2节:Android 系统架构和应用组件那些事 继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android ...
随机推荐
- jz2440开发板设置备份
___________________uboot______________________________________ OpenJTAG> pribootdelay=2baudrate=1 ...
- 数据库数据用Excel导出的3种方法
将数据库数据用Excel导出主要有3种方法:用Excel.Application接口.用OleDB.用HTML的Tabel标签 方法1——Excel.Application接口: 首先,需要要Exce ...
- Hibernate MySQL 数据库 使用别名 报 Column * Not Found
使用Hibernate 查询MySQL数据表的时候报 Column Not Found ,原因是MySQL的驱动不支持别名, 解决方案如下,在连接参数中加上 useOldAliasMetadataBe ...
- Android 使用 array.xml
//获取文件资源 TypedArray mainNavIcon = context.getResources().obtainTypedArray(R.array.mainNavIcon); //获取 ...
- Struts2-ActionContext
官方解释: The ActionContext is the context in which an {@link Action} is executed. Each context is basic ...
- Chapter 17 Replication 复制
Chapter 17 Replication 复制 Table of Contents 17.1 Replication Configuration 17.2 Replication Implemen ...
- [置顶] Android自定义控件大全
1,自定义Edittext, TextView,带底线的Edittext, TextView 2.自定义圆形ImageView,圆角ImageView 3,下拉刷新LinearLayout 4,多点触 ...
- HTML5 上播放视频格式兼容性
视频格式 当前,video 元素支持三种视频格式: 格式 IE Firefox Opera Chrome Safari Ogg No 3.5+ 10.5+ 5.0+ No MPEG 4 9.0+ No ...
- Git 文件状态的转换
很好低使用git 文件的状态转换的了解是非常重要的. 文件转换状态其实可以分为四种: untracked:未跟踪,此文件在工作区中,但并没有加入git库,不参与版本控制. 通过”git add”,”g ...
- 02-UIKit控件、MVC
目录: 一.控件使用 二.动态类型和静态类型 三.MVC 四.UIAlertView对话框 回到顶部 一.控件使用 1 事件源,事件处理方法有一个参数传进来,那个参数就是触发这个事件的时间源. UIS ...