C# 仓库物料管理系统 连接数据库SQL 高级语言编程
(1)系统功能包括 :产品入出库登记、确认入出库信息、删除库内信息、领出信息登记、产品分类管理、仓库设置。
(2)用户功能包括:查询库内信息、查询出库信息、查询入库信息、支持多格式查询信息导出、支持多格式信息批量导入、修改本用户密码。
功能图
登陆模块
功能管理模块
登陆界面
注册界面
主界面
菜单
数据分析
数据库部分设计:参考 SQL service 数据库 某工厂的物料管理系统数据库设计与实现_DXnima的博客-CSDN博客_物料数据库
e-r图
部分代码:
饼状统计图绘制
//绘制饼状图************************/// <summary>/// 计算数值综合/// </summary>/// <param name="Value"></param>/// <returns></returns>private static decimal Sum(decimal[] Value){decimal t = 0;foreach (decimal d in Value){t += d;}return t;}/// <summary>/// 计算各项比例/// </summary>/// <param name="Value"></param>/// <returns></returns>private static decimal[] GetItemRate(decimal[] Value){decimal sum = Sum(Value);decimal[] ItemRate = new decimal[Value.Length];for (int i = 0; i < Value.Length; i++){ItemRate[i] = Value[i] / sum;}return ItemRate;}/// <summary>/// 根据比例,计算各项角度值/// </summary>/// <param name="ItemRate"></param>/// <returns></returns>private static int[] GetItemAngle(decimal[] ItemRate){int[] ItemAngel = new int[ItemRate.Length];for (int i = 0; i < ItemRate.Length; i++){decimal t = 360 * ItemRate[i];ItemAngel[i] = Convert.ToInt32(t);}return ItemAngel;}/// <summary>/// 绘制饼图(主要是分析不同类型的数值所占比例),参数有图的标题,项目名称,项目的数值,名称和数值都是长度对应的/// </summary>/// <param name="Title">图的标题</param>/// <param name="ItemName">项目名称</param>/// <param name="ItemValue">项目的数值</param>/// <returns>Bitmap图形</returns>public static Bitmap GetPieImage(string Title, string[] ItemName, decimal[] ItemValue){Bitmap image = GenerateImage(Title);////主区域图形Rectangle RMain = new Rectangle(40, 80, 380, 300);//图例信息Rectangle RDes = new Rectangle(550, 90, 10, 10);Font f = new Font("新宋体", 9, FontStyle.Bold);Graphics g = Graphics.FromImage(image);g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;try{//分析数据,绘制饼图和图例说明decimal[] ItemRate = GetItemRate(ItemValue);int[] ItemAngle = GetItemAngle(ItemRate);int Angle1 = 0;int Angle2 = 0;int len = ItemValue.Length;Color c = new Color();//3Dg.DrawPie(new Pen(Color.Black), RMain, 0F, 360F);g.DrawPie(new Pen(Color.Black), new Rectangle(RMain.X, RMain.Y + 10, RMain.Width, RMain.Height), 0F, 360F);g.FillPie(new SolidBrush(Color.Black), new Rectangle(RMain.X, RMain.Y + 10, RMain.Width, RMain.Height), 0F, 360F);//绘制for (int i = 0; i < len; i++){Angle2 = ItemAngle[i];//if (c != GetRandomColor(i))c = GetRandomColor(i);SolidBrush brush = new SolidBrush(c);string DesStr = ItemName[i] + "(" + (ItemRate[i] * 100).ToString(".00") + "%" + ")" + ItemValue[i].ToString(".00");//DrawPie(image, RMain, c, Angle1, Angle2);Angle1 += Angle2;DrawDes(image, RDes, c, DesStr, f, i);}return image;}finally{g.Dispose();}}
效果如上面的图!!!
数据保存及其转换:
datatable转txt datatable数据转为excel txt或excel转DataSet
//datatable数据保存到txtpublic void SavaTxt(DataTable dt, string name){StreamWriter sw = new StreamWriter(name);string col_txt = "";string row_txt = "";foreach (DataColumn item in dt.Columns)// dt为DataTable {col_txt += item.ToString() + " "; // 循环得到列名 }col_txt = col_txt.Substring(0, col_txt.Length - 1);sw.WriteLine(col_txt); //写入文件 foreach (DataRow item in dt.Rows){row_txt = ""; //此处容易遗漏,导致数据的重复添加 for (int i = 0; i < dt.Columns.Count; i++){row_txt += item[i].ToString() + " "; //循环得到行数据 }row_txt = row_txt.Substring(0, row_txt.Length - 1);sw.WriteLine(row_txt, Encoding.UTF8);//写入文件}sw.Close();}//datatable数据转为excelpublic void SavaXls(Workbook workbook, string FileName = ""){if (!string.IsNullOrEmpty(FileName)){workbook.SaveToFile(FileName, ExcelVersion.Version2010);}else{workbook.SaveToFile(DateTime.Now.ToString("yyyyMMddhhmmssfff"), ExcelVersion.Version2010);}}//读取txt文本内容public string ReadTxtFile(string Path){StreamReader sr = new StreamReader(Path);string str = "";while (!sr.EndOfStream){str = sr.ReadLine().ToString();//读取每行数据}sr.Close();return str;}//获取text文件或excel数据 转为DataSet 类型public DataSet getData(){//判断文件后缀var path = file.FileName;string fileSuffix = System.IO.Path.GetExtension(path);if (string.IsNullOrEmpty(fileSuffix))return null;else if (fileSuffix == ".txt")//txt数据转为datatable{DataSet ds = new DataSet();// 读出文本文件的所有行string[] lines = File.ReadAllLines(path, Encoding.Default);DataTable dt = new DataTable();Regex.Split(lines[0], @"\s+").Where(t => t.Trim() != "").ToList().ForEach(t => dt.Columns.Add(t.Trim()));for (int i = 1; i < lines.Length; i++){DataRow dr = dt.NewRow();Regex.Split(lines[i], @"\s+").Where(t => t.Trim() != "").Select((t, index) => dr[index] = t).ToArray();dt.Rows.Add(dr);}ds.Tables.Add(dt);return ds;}else//excel数据转为datatable{using (DataSet ds = new DataSet()){//判断Excel文件是2003版本还是2007版本string connString = "";if (fileSuffix == ".xls")connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";elseconnString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";//读取excel文件string sql_select = " SELECT * FROM [Sheet1$]";using (OleDbConnection conn = new OleDbConnection(connString))using (OleDbDataAdapter cmd = new OleDbDataAdapter(sql_select, conn)){conn.Open();cmd.Fill(ds);}if (ds == null || ds.Tables.Count <= 0) return null;return ds;}}}
数据库相关操作:增删查改
//数据库查询方法public DataSet select(string select){try{SqlConnection sqlconn = new SqlConnection(SQLstr);SqlDataAdapter sqlda = new SqlDataAdapter(select, sqlconn);DataSet dset = new DataSet();sqlda.Fill(dset);return dset;}catch (Exception ex){MessageBox.Show(ex.Message, "警告");return null;}}//数据库语句查询返回查询结果 ,字符串形式输出 //selectSQL 查询语句 name列名public string select(string selectSQL,string name){try{string s;SqlConnection sqlconn = new SqlConnection(SQLstr);SqlDataAdapter sqlda = new SqlDataAdapter(selectSQL, sqlconn);DataSet dset = new DataSet();sqlconn.Open();sqlda.Fill(dset);s = dset.Tables[0].Rows[0][name].ToString().Trim();sqlconn.Close();return s;}catch (Exception ex){MessageBox.Show(ex.Message, "警告");return null;}}//数据库语句操作方法public void tranSQL(string str){try{SqlConnection sqlconn = new SqlConnection(SQLstr);SqlCommand sqlcomm = new SqlCommand(str, sqlconn);sqlconn.Open();sqlcomm.ExecuteNonQuery();sqlconn.Close();}catch (Exception ex){MessageBox.Show(ex.Message, "警告");}}//读取数据库数据public SqlDataReader readSQL(string str){try{SqlConnection sqlconn = new SqlConnection(SQLstr);SqlCommand sqlcomm = new SqlCommand(str, sqlconn);sqlconn.Open();SqlDataReader sdr = sqlcomm.ExecuteReader();return sdr;}catch (Exception ex){MessageBox.Show(ex.Message, "警告");return null;}}//判断数据库重复真重复 假不存在public bool judgeCopy(string sdrSQL,string strSQL,string strCON){bool Flag = false;SqlDataReader reader =readSQL(sdrSQL);while (reader.Read()){if (strCON == reader[strSQL].ToString().Trim()){Flag = true;break;}else{Flag = false;}}reader.Close();return Flag;}//数据库某一列数据存入字符数组//sqlStr 数据库语句 rowStr列名public string[] imgeNeedstring(string sqlStr,string rowStr){DataTable dt = select(sqlStr).Tables[0];//string dt = select(sqlStr,rowStr);string[] abc = new string[dt.Rows.Count];for (int i = 0; i < dt.Rows.Count; i++){string row = select(sqlStr).Tables[0].Rows[i][rowStr].ToString().Trim();abc[i] = row.ToString().Trim();}return abc;}//字符数组转decimal类型public Decimal[] imgeDecimal(string sqlStr, string rowStr){string[] Content = imgeNeedstring(sqlStr,rowStr);Decimal[] d = new Decimal[Content.Length];for (int i = 0; i < Content.Length; i++){d[i] = Convert.ToInt32(Content[i].ToString().Trim());}return d;}///<summary>///附加数据库///</summary>public void AttachDB(){SqlConnection conn = new SqlConnection("server = localhost; database = master; integrated security = SSPI");SqlCommand comm = new SqlCommand();conn.Open();comm.Connection = conn;comm.CommandText = "select count(*) from sys.databases where name = 'WNA'";int a = Convert.ToInt32(comm.ExecuteScalar());if (a == 1){return;}else{try{string Path = @"../../obj/Debug/DataBase/";FileInfo file = new FileInfo(Path);string mdfPath = file.FullName + "WNMData.mdf";//mdf文件的路径string ldfPath = file.FullName + "WNMData.ldf";comm.CommandText = "sp_attach_db";//系统数据库master 中的一个附加数据库存储过程。comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar));comm.Parameters[@"dbname"].Value = "WNM";comm.Parameters.Add(new SqlParameter(@"filename1", SqlDbType.NVarChar)); //一个主文件mdf,一个或者多个日志文件ldf,或次要文件ndfcomm.Parameters[@"filename1"].Value = mdfPath;comm.Parameters.Add(new SqlParameter(@"filename2", SqlDbType.NVarChar));comm.Parameters[@"filename2"].Value = ldfPath;comm.CommandType = CommandType.StoredProcedure;comm.ExecuteNonQuery();//MessageBox.Show("附加数据库成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}catch //(Exception ex){// MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}finally{conn.Close();}}}
源码:https://download.csdn.net/download/qq_40953393/43049099
C# 仓库物料管理系统 连接数据库SQL 高级语言编程相关推荐
- 基于Vue和SpringBoot的便利店仓库物资管理系统的设计与实现
作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...
- 物流信息管理系统MySQL设计,物流管理系统的SQL数据库设计(含代码)
物流管理系统的SQL数据库设计(含代码) 物流管理信息系统的数据库设计班级xxx系统名称:物流管理信息系统一.需求分析物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是:1.实现上游制造商 ...
- Visual C#的SQL Server编程
Visual Studio.NET的中文Beta 2版本推出已有一段时日了,相比早期的Beta 1版本,新版本各方面都有很大的变化,其中包括SQL Server编程方面,在中文Beta 2中,数据库的 ...
- Java课程设计——仓库商品管理系统
在现今信息时代,生活速度的加快,使得人们越来越向信息化.数字化发展.随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,尤其是学生的考试成绩数据.面对庞大的学生的成绩,需要有学生 ...
- java swing mysql实现的仓库商品管理系统
运行背景: Java swing实现的一款简单的仓库商品管理系统,数据库采用的是mysql,本系统实现了两个角色层面的功能,管理员可以管理用户.仓库.商品信息等.普通用户登录后可以查看商品.仓库信息及 ...
- 新版PHP云进销存系统ERP销售库存仓库员工管理系统源码
简介: 新版云进销存系统ERP销售库存仓库员工管理系统源码,2022独家版本,带合同报价单打印,修复子账号不显示新加客户的BUG,还有其他方面的优化,网上流传的大多数都是老版本,没有这些功能,注意甄别 ...
- 带领初学者学习 SQL 数据库编程视频教程(11 个视频)
带领初学者学习 SQL 数据库编程视频教程(11 个视频) #1 课程介绍「02:04」 #2 在各操作系统中安装 MySQL 和 PostgreSQL 数据库「05:46」 #3 工欲善其事,必先利 ...
- 物料管理系统最基本的功能有哪些?
随着企业信息化的快速发展,传统企业的企业快速增长与管理水平.手段滞后之间的矛盾已成为影响企业发展的重要因素和阻碍企业战略目标实现的主要矛盾.尤其是对于一些传统的中小型制造企业企业而言,以往的信息化系统 ...
- 数据库、数据库管理系统、SQL和图形界面工具的关系
写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...
最新文章
- WPF中的容器控件——GridSplit
- tomcat架构分析(容器类)【转】
- Tengine的Linux下安装和启动
- QWT中Qdial的入门介绍
- 机器学习:随机森林算法及其实现
- 小程序开发学习(5)---实现天气预报小程序
- python全局变量global线程安全_对python多线程与global变量详解
- selenium打开Firefox、IE、Chrome浏览器【python】
- python安装扩展常用的工具是_Python 安装扩展库常用的是 _______ 工具_学小易找答案...
- zabbix登陆拒绝报没有权限
- EasyUI:textbox自定义验证手机号(正则)
- malloc和free的常识性问题
- 微信接口java解密_微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)...
- 王道考研机试指南重写
- 微信能通过服务器改数据解封吗,【微信新规】微信永久封号官方解封方法
- Timestamp日期格式转换
- python+requests爬取汽车之家二手车
- [ctf.show.reverse] 数学不及格
- 计算机休眠期死机,电脑休眠状态频繁死机怎么处理
- ubuntu 使用 egl
热门文章
- for循环 shell批量修改文件名,创建文件
- JS中ArrayBuffer和Uint8Array区别
- 分布式数据库SQL引擎之解析器
- ccf计算机认证考试题集,CCF计算机职业认证考试
- pat顶级1004 To Buy or Not to Buy - Hard Version (35 point(s))
- cocos2d-x游戏iphone移植到android需要注意事项
- Windows下的Nginx部署React项目及解决反向代理跨域问题等-20.8.1更新
- 给自己的服务器传文件 转自别人
- javaee实战项目--农贸产品开发(详细讲解及代码实现)
- Python模块学习 之zipfile zip文件操作