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 ...
随机推荐
- zabbix 邮件告警配置
使用外部邮箱账号发送报警邮件设置 一.关闭sendmail或者postfix service sendmail stop #关闭 chkconfig sendmail off #禁止开机启动 serv ...
- (Problem 13)Large sum
Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. 371072875339 ...
- (Problem 1)Multiples of 3 and 5
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The ...
- QDebug &operator<<出错(根据QString来找,是不得要领的,而是应该根据QString所在的对象来思考)
程序运行后,总是崩溃在这个地方:inline QDebug &operator<<(const QString & t) 我应该用什么办法找出是哪个QString出了问题呢 ...
- 简单实用的下拉菜单(CSS+jquery)
原文 简单实用的下拉菜单(CSS+jquery) 没什么可以说的,直接上例子 html+jquery代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...
- PHP urlencode()和rawurlencode()使用和区别
string urlencode ( string $str ) 此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页. 返回值 返回字符串,此字符串中除了 -_. 之 ...
- 转:python中函数curry化
1 柯里化(Currying) 一个函数有多个参数,我们希望能固定其中几个参数的值. from functools import partial def foo(a,b,c): return a+b+ ...
- cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: 解决办法
问题原因:很可能是/var/log的权限设置不正确.首先执行 mkpasswd 和 mkgroup 重新生成权限信息,再删除sshd服务,重新配置 解决办法: $ mkpasswd -l > / ...
- 知识点2-5:了解Razor语法
以往开发ASP.NET Web Form时,在ASPX页面上都会出现许多夹杂C#/VB.NET与HTML的情况,而先前使用<%...%>这种传统圆角括号的表示法会让HTML标签与ASP.N ...
- QThread 与 QObject的关系(QObject可以用于多线程,可以发送信号调用存在于其他线程的slot函数,但GUI类不可重入)
QThread 继承 QObject..它可以发送started和finished信号,也提供了一些slot函数. QObject.可以用于多线程,可以发送信号调用存在于其他线程的slot函数,也可以 ...