系统架构设计

主要界面设计
1.系统登陆界面:
用户注册
用户登录
2.UI主要实现功能:
个人收入或支出查询.
个人收入及支出录入
个人收入及支出更改以及删除
主要细节
3.与数据库交互。实现(添加,删除,更新)
个人收入录入/个人支出录入
收入或支出信息的更新
收入或支出信息删除

源码地址

系统模块实现

用户登录

修改密码

收支模块

出纳模块

其他模块

系统表结构设计

财务管理数据库financialMS设计表:
(1)表名:users(用户表),如表1所示。
|字段名称| 数据类型 |字段说明 |字段属性|
| -------- | :---- | :---- |
|userName | Varchar(20) |用户名 |主键|
|password | Varchar(20) |密码 |不能为空|
|juese |Varchar(20) |角色 |扩展功能用,可以先设置为空|

(2)表名:income(收入详细表),如表2所示。
|字段名称 |数据类型 |字段说明 |字段属性|
| -------- | :---- | :---- |
|incomeID |int |收入ID |主键、自动增长值为1|
|incomeName |Varchar(20) |收入人姓名 |不能为空|
|incomeNum |int |收入金额 |不能为空|
|incomeDep |Varchar(100) |收入内容描述 |可以为空|
|incomeDate |DateTime |收入时间 |不为空|

(3)表名:spend(支出详细表),如表3所示

|字段名称 |数据类型 |字段说明 |字段属性
| -------- | :---- | :---- |
|spendID |int |支出ID |主键、自动增长值为1
|spendName |Varchar(20) |支出人姓名 |不能为空
|spendNum |int |支出金额 |不能为空
|spendDep |Varchar(100) |支出内容描述 |可以为空
|receiveName |Varchar(20) |接收人姓名 |不能为空
|spendAdd |Varchar(20) |支出地点 |可以为空
|spendDate |DateTime |支出时间 |不为空

系统数据库操作实现

一、连接数据库 Connection对象
Connection对象:是一个连接对象,主要功能是建立于物理数据库的连接,主要包括4中访问数据库的对象类,如下:
1)SQL Server数据提供程序,位于System.Data.SqlClient命名空间 相对应:SqlConnection
2)ODBC数据提供程序,位于System.Data.Odbc命名空间 相对应:OdbcConnection
3)OLEDB数据提供程序,位于System.Data.OleDb命名空间 相对应:OleDbConnection
4)Oracle数据提供程序,位于System.Data.OracleClient命名空间 相对应:OracleConnection
打开连接为: .Open() 关闭连接为:.Close()

二、执行SQL语句Command对象
Command对象是一个数据命令对象,主要功能是向数据库发送查询、更新、删除、修改的SQL语句。Command对象主要有以下几种方式(与一相对应):
1)SqlCommand :向SQL Server数据库发送SQL语句
2)OdbcCommand:向使用ODBC公开的数据库发送SQL语句
3)OleDbCommand:向使用OLEDB公开的数据库发送SQL语句,如Access数据库和MySql数据库
4)OracleCommand:向使用ORACLE公开的数据库发送SQL语句
方法:
1)ExecuteNonQuery方法:用于向数据库发送增、删、改命令。返回值:受影响的行数
2)ExecuteReader方法:执行SQL语句,并生成一个包含数据的SqlDataReader对象的实例 返回值:一个SqlDataReader对象【详见三】
例:
SqlCommand cmd = new SqlCommand(strSql,conn); 或者【 SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;cmd.CommandText=strSql;cmd.CommandType=CommandType.Text; 】
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
listView1.Items.Add(sdr1.ToString());
}
3)ExecuteScalar方法:执行SQL语句,返回结果集中的第一行的第一列

三、读取数据:DataReader对象
DataReader对象是数据读取器对象,提供只读向前的游标,如果只是需要快速读取数据,并不需要修改数据,那么就可以使用DataReader对象进行读取,对于不同的数据库连接,有不同的DataReader类型,如下:
1)在System.Data.SqlClient命名空间下,可以调用SqlDataReader类
2)在System.Data.Odbc命名空间下,可以调用OdbcDataReader类
3)在System.Data.OleDb命名空间下,可以调用OleDbDataReader类
4)在System.Data.OracleClient命名空间下,可以调用OracleDataReader类
实例:
if (myreader.Read())
{
//myreader中有数据,表示给出的用户名和密码在数据库中有匹配记录
MessageBox.Show(“登录成功”);
//如果登录成功则取出用户名和等级填入下面的文本框中
textBox3.Text = myreader[“username”].ToString();
textBox4.Text = myreader[“level”].ToString();
}
else
{
//myreader中没有数据,表示给出的用户名和密码至少有一个是错的
MessageBox.Show(“登录失败!!”);
}

四、数据适配器:DataAdapter对象
DataAdapter对象是一个数据适配器对象,是DataSet与数据源之间的桥梁。DataAdapter对象对象提供了4个属性,实现与数据源之间的互通:
1)SelectCommand属性
2)DeleteCommand属性
3)InsertCommand属性
4)UpdateCommand属性
实例:
string strConn=“uid=账号;pwd=密码;database=数据库;server=服务器”;//SQL Server链接字符串
SqlConnection ConnSql=new SqlConnection (strConn); //Sql链接类的实例化
ConnSql.Open ();//打开数据库
string strSQL="SELECT * FROM 表名1 "; //要执行的SQL语句
SqlDataAdapter da=new SqlDataAdapter(strSQL,ConnSql); //创建DataAdapter数据适配器实例
DataSet ds=new DataSet();//创建DataSet实例
da.Fill(ds,“自定义虚拟表名”);//使用DataAdapter的Fill方法(填充),调用SELECT命令
ConnSql.Close ();//关闭数据库

五、数据集DataSet对象
DataSet对象就像存放于内容中的小型数据库。它可以包含数据表、数据列、数据行、视图、约束以及关系。
1)合并DataSet内容 方法为:Merge(dataSet将合并的数据和架构的dataSet名,preserveChanges是否保留当前DataSet中的更改,missingSchemaAction枚举值之一);
2)复杂DataSet内容 方法为:Copy 例:DataSet ds1 =ds.Copy();

用户登录校验实现

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Diagnostics;namespace fms
{public partial class FormLogin : Form{public FormLogin(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){SQLHelper dbhelp = new SQLHelper();//dbhelp为访问sqlhelper的对象,即在登陆窗体中让sqlhelper类实例化。string name = tdname.Text.Trim();//获取用户名控件文本,且去掉空格string pwd = tdpwd.Text.ToString().Trim();//获取密码控件文本,且去掉空格int n = dbhelp.checklogin(name, pwd);//调用类中的checklogin方法。if (n>0){MessageBox.Show("登陆成功");FromMain zhujiemian = new FromMain();//主窗体,对象实例化zhujiemian.Show();//显示主窗体this.Hide();//隐藏登陆窗体}else{MessageBox.Show("用户/密码错误,登陆失败","错误信息框",MessageBoxButtons.OK);}}private void linkLabel_Regist_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){FormRegistNewUser newusers = new FormRegistNewUser(); //类作为对象的实例化。newusers.Show(); //对象的属性,简而言之就是让超级赛亚人附体的意思。}private void button2_Click(object sender, EventArgs e){Application.Exit();}private void FormLogin_Load(object sender, EventArgs e){}}
}

源码地址

CS架构整合SQLserver数据库实现C#财务管理系统,报表分析系统相关推荐

  1. 计算机毕业设计Java个人财务管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java个人财务管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java个人财务管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  2. javaweb JAVA JSP记账管理系统财务管理系统(个人理财系统个人财务管理系统

    javaweb JAVA JSP记账管理系统财务管理系统(个人理财系统个人财务管理系统 常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房,屋租赁,教务管 ...

  3. android记账管理系统财务管理系统(个人理财系统 个人财务管理系统-毕业设计安卓记账)

    android记账管理系统财务管理系统(个人理财系统 个人财务管理系统-毕业设计安卓记账)

  4. 基于JAVA和SQL SERVER数据库实现个人财务管理系统

    源码下载 http://www.byamd.xyz/hui-zong-1/ 一.需求分析 个人财务管理系统是智能化简单化个人管理的重要的组成部分.并且随着计算机技术的飞速发展,计算机在管理方面应用的旁 ...

  5. SpringBoot2 整合 ClickHouse数据库,实现高性能数据查询分析

    本文源码:GitHub·点这里 || GitEE·点这里 一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.C ...

  6. 基于sqlserver数据库的学生成绩管理系统

    目录 学生数据编辑界面: 学生数据查询界面: 项目文档 项目源码          "用户登录"为"groupBox控件" 双击"确定"按钮 ...

  7. 电子电气架构——车载诊断数据库(CDD/ODX/DEXT)分析

    2023年1月15日,魔都周末温度的骤降,2023年第一场雪,让自己感受到身处的季节是冬天,提醒自己柜中的羽绒服还能派上用场.看朋友在东北某地滑雪的图片,心中还是满眼羡慕之情. 2022年已经过去,都 ...

  8. cs和bs架构的区别(bs和cs架构的区别和优缺点)

    BS架构比CS架构优越的地方有哪些? BS架构比起CS架构有着很大的优越性,传统的MIS系统依赖于专门的操作环境,这意味着操作者的活动空间受到极大限制:而BS架构则不需要专门的操作环境,在任何地方,只 ...

  9. asp.net鲜花网站系统VS开发sqlserver数据库web结构C#编程

    一.源码特点         asp.net鲜花网站系统是一套完善的WEB设计管理系统,系统具有完整的源代码和数据库 ,系统主要采用B/S模式开发. 应用技术:ASP.NET c#+sqlserver ...

最新文章

  1. Python--day28--set去重
  2. 万门大学倒闭了,童哲连夜跑路了
  3. 修改Nginx与Apache配置参数解决http状态码:413上传文件大小限制问题
  4. Android华容道之一步一步实现-序言
  5. unix基础之改变文件权限
  6. P3327-[SDOI2015]约数个数和【莫比乌斯反演】
  7. php导出csv文件,可导出前导0实例
  8. SQL Server数据表在编程中实现导出EXCEL的几种方法
  9. fiddle下载安装教程
  10. 全球国家(和地区)信息JSON数据
  11. phpspider 简单用法和学习,分类一对多爬取数据
  12. [UPC] 2021秋组队17
  13. Linux 虚拟鼠标,键盘 之一。
  14. Oxyplot实时绘图学习笔记(下)
  15. iOS IM自研方案
  16. 查找并下载开放的音乐数据(.mp3)
  17. TI-RTOS实时操作系统开发之低速时钟32.768kHz晶振检测
  18. 牛客网C语言考试输入输出问题
  19. Android退出APP 并杀掉相关的所有进程
  20. 【ART-PI】使用STM32H750的隐藏2MB ROM

热门文章

  1. 终结代购跨境直购新选择
  2. Windows下Docker学习总结
  3. popwndexe.exe程序简介
  4. Java抽象类中,普通方法依赖抽象方法时,抽象方法有入参的实现方法
  5. linux系统怎么修改网卡名,linux修改网卡名字
  6. 免费软件 --- 国信证券帐户历史成交统计器
  7. 无法定位序数3212于动态链接库libeay32.dll上
  8. 使用nRF Connect for Desktop快速部署NCS
  9. Windows修改hosts文件,增加地址映射
  10. excel技巧_老Excel狗学新技巧