工作中,需要购买一些东西,为了便于记账,自己写了一个简单的程序,仅供参考吧。

首先,因为没有内网环境,所以我使用的数据库是Excel,你可以用sql、mdb等。性质是一样的。

主要是说方法,所以界面就丑了,忽略就可以了。先看一下雏形模样吧。上边是数据,下边是功能区。

添加引用

    //自定义引用using System.Text.RegularExpressions;//正则表达式using System.Data.OleDb;//数据库

思路

我们先来缕清思路,然后再去操作。

1. 每次打开工具的时候,列出当前已购物品信息。
2. 每次打开工具的时候,自动计算出当前已购物品金额合计,自定义一个全局变量,可以用来存储当前所有物品的合计金额。
3. 每次购买物品的时候,标注产品名、单价、数量、购买时间、经手人、送货人等必要信息,然后写入到数据库内。
4. 写入的时候,根据单价和数量,自动算出小计金额。
5. 根据我们自己设计的程序来看,写入Excel的时候,需要知道序号,所以我们要获取到本次写入之前数据库中已有的最大序号,然后+1,就是本次要写入数据的序号了。
6. 程序中的时间控件,默认的是添加的那天,我们要改为自动获取当前时间,这样免去了每次都选时间的操作。

创建数据库

前面说了,我使用的Excel来作为数据库的,所以要建立一个空白的数据库表,有表头,但是没有数据内容的表。

我的excel是这样设置的

序号 产品 数量 单价 小计 经手人 送货人
数据 数据 数据 数据 数据 数据 数据
数据 数据 数据 数据 数据 数据 数据

让程序链接数据库

为了便于以后更改和维护,我写了个全局变量,来标识Excel数据库的位置。

在解决方案资源管理其中,右键单击项目名称,选择添加,选择类,新建一个名为GlobalData.cs的类。

添加如下代码:

 class GlobalData{public static int Id = 0;public static string SQL_Str = "";//SQL语句public static int TotalMoney = 0;//合计总金额public static string DbConn_Str = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=e:/TEMP/list.xls;" + "Extended Properties=Excel 5.0;";//数据表数据库连接语句public static string Excel_Sheet = "[Sheet1$]";//默认的工作簿名}

测试Excel是否可以正常连接

先在Excel中新增几条记录,随便写,目的是检查是否可以读取到程序中。

新建一个子程序,名为LoadData。

private void LoadData(){dateTimePicker_ShiJian.Text = DateTime.Now.ToShortDateString();//把今天的日期显示在时间控件里,默认的就是今天,不用每次在选了。GlobalData.SQL_Str = "select * from " + GlobalData.Excel_Sheet;//从数据库中查询记录OleDbConnection conn = new OleDbConnection(GlobalData.DbConn_Str);//打开数据库连接try{OleDbDataAdapter DAa = new OleDbDataAdapter(GlobalData.SQL_Str, conn);//实例化OleDbDataAdapter来读取记录DataTable DTt = new DataTable();//创建DataTableDAa.Fill(DTt);//把OleDbDataAdapter结果赋值给DataTabledataGridView.DataSource = DTt;//把DataTable指定为dataGridView数据源GlobalData.Id = DTt.Rows.Count;//获取当前已有记录条数,也就是序号,下次写入前+1即可GlobalData.SQL_Str = "select sum(小计) from " + GlobalData.Excel_Sheet;//从Excel中统计小计列的和conn.Open();OleDbCommand cmd_TMDr = new OleDbCommand(GlobalData.SQL_Str, conn);//执行统计sql语句object TM = cmd_TMDr.ExecuteScalar();//用object来存储结果GlobalData.TotalMoney = int.Parse(TM.ToString());//把合计结果赋值给全局变量conn.Close();label_TotalMoney.Text = "¥" + GlobalData.TotalMoney.ToString();//把合计结果显示到label中}catch (Exception ex){MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}finally{}}

然后我们在程序载入事件下加入代码

        private void Form1_Load(object sender, EventArgs e){LoadData();}

然后就是运行程序,看看效果了哦

没问题,都可以正常显示出来,那么我们第一步就搞定了。

下次就开始说如何新增记录到数据库中。再见~

用VS2010写一个简单的记账工具(一)基础设置相关推荐

  1. 开始做一个简单的记账工具

    用VScode做一个简单的记账工具 内容保存在 https://leonchan0608.coding.net/public/bookkeeping/bookkeeping/git 下班学习,奋斗一年 ...

  2. 利用python写一个简单的双色球彩票系统

    利用python写一个简单的双色球彩票系统 1.设置每次买的号码一样 写一个双色球彩票系统,系统可以随机产生一组数据,一组彩票数据有六位数,这六位数的的取值范围是0和1. 一张彩票是两块钱,用户可以选 ...

  3. 用 Python 的GUI 库 PySimpleGUI,写一个肥胖指数计算工具,Python开发就是这么简单

    Python 的 GUI 库 PySimpleGUI,写一个简单的有界面的小工具很简单!这里我们来写一个计算肥胖指数(BMI)的小工具.首先,通过百度得到 BMI 指数的计算公式为: 体重 / (身高 ...

  4. 如何写一个简单的node.js C 扩展

    node 是由 c 编写的,核心的 node 模块也都是由 c 代码来实现,所以同样 node 也开放了让使用者编写 c 扩展来实现一些操作的窗口. 如果大家对于 require 函数的描述还有印象的 ...

  5. java json帮助类_java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈"per_page"是一个json对象,我们可以根据"per_page"来找到对应值是3,而第二个红圈&quo ...

  6. 【Linux操作系统】--攥写一个简易的shell工具

    目录 做一个简易的shell 第一步:打印提示符,在同一行打印出提示符 第二步:获取标准输入,获取命令字符串 第三步:将字符串分割,解析字符串 第四步:替换进程,执行第三方命令 3.5.执行第三方命令 ...

  7. 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏

    怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译2011-01-26 01:10 3175人阅读 评论(3) 收藏 举 ...

  8. 自己动手写一个简单的bootloader

    自己动手写一个简单的bootloader 15年10月31日19:44:27 (一) start.S 写这一段代码前,先要清楚bootloader开始的时候都做什么了.无非就是硬件的初始化,我们想要写 ...

  9. 构建自己的购物搜索引擎一:写一个简单的

    记得2010年10月9号,淘宝全网搜索引擎一淘网上线,当时不怎么关注,只是在网站上看到过新闻而己,前两个月,觉得是时候走确定自己以后要走的方向了,于是决定以后加入到搜索的行列中,此时开始关注一淘网的技 ...

最新文章

  1. 轻松解决Windows7声卡驱动不全问题
  2. centos7 如何安装部署k8s_五步教你如何使用k8s快速部署ES
  3. 牛!江苏老人用AIoT技术管理千亩良田
  4. 结构型模式—外观模式
  5. 为什么将表格的method改为post后就无法工作_用Python将Keras深度学习模型部署为Web应用程序...
  6. “返回指向栈空间的指针”的错误
  7. html常用标签6-表单标签
  8. 介绍一种新的激活函数族ACON
  9. 基于jsp的失物招领系统_基于Java web的校园失物招领系统
  10. 数据库技术与应用知识点小结(上)
  11. 修复Webots在ubuntu下安装出现的一些依赖问题
  12. 计算机组装图纸手画,手工绘图的方法和步骤 -工程
  13. MySQL获取汉字的拼音首字母并过滤字母符号数字
  14. android qq授权管理软件,android QQ第三方授权登录接入流程
  15. php apm,apm是什么?
  16. STM32cubemx教程 DAC+TIM+DMA
  17. eclipse出现Parameter index out of range (1 number of parameters, which is 0)报错
  18. cocos2dx入门1:关于Cocos Creator
  19. 我爬了某宝上4000+网店只为了告诉你中国人最爱喝什么绿茶
  20. 36岁互联网高管从大厂裸辞,专门卖书快乐多了

热门文章

  1. Tair 分布式Key/Value高可用解决方案(可用于缓存及持久)
  2. PHP接入腾讯云行驶证识别(新旧版本,不使用SDK及DEMO)
  3. 一个人的浪漫 2012.3.3
  4. JAVA怎么给手机发短信对接验证码短信接口DEMO示例
  5. 利用Python实现多元伯努利事件的朴素贝叶斯分类器
  6. Linux下编写贪吃蛇游戏
  7. 智慧警务三维电子沙盘系统
  8. Mascarpone Cheese
  9. k8s 一键安装Kubernetes集群
  10. java编译体重指数计算器_标准体重计算器