绩效考核管理项目|记录1

项目用C#winform+SQL Server写的,现在记录一下学习到的新东西。

winform工具

splitContainer:分割出两个容器,能添加面板之类的工具

treeview:展示标签页的分层集合(用户管理、基数管理......),有编辑器添加分支

datagridview:能显示行和列的数据。编辑器能手动添加内容,如果不添加,会自动按照代码的方法名去自动添加名称。

把其他设计图放在主设计图上显示的方法:

 这里改true(能承载副窗体)

然后改副设计图成无边框

 修改窗体在容器中是最大化

最后写代码

FormUserManager formUserManager = new FormUserManager();
主
formUserManager.MdiParent = this;
副
formUserManager.Parent = splitContainer1.Panel2;
formUserManager.Show();

每个工具(按键,标签......)都能锁定布局,如图是右上

连接数据库的操作

1.确保数据库的服务器、用户名和密码都没错。

2.创建一个SQLhelper的类文件,目的是在数据库中操作,代码如下

namespace appraisal_system
{public class SqlHelper{//连接字符串(和数据库连接的基础)public static string ConStr { get; set; }//获取数据库的数据public static DataTable ExecuteTable(string cmdText){using (SqlConnection con = new SqlConnection(ConStr)){con.Open();//仓库管家SqlCommand cmd = new SqlCommand(cmdText, con);//推车SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd);//货车DataSet ds = new DataSet();//货车满载,返回第一个集装箱sqlDataAdapter.Fill(ds);return ds.Tables[0];}}//在数据库除了取的操作不行,其他增删改都可以public static int ExecuteNonQuery(string cmdText){using (SqlConnection con = new SqlConnection(ConStr)){con.Open();SqlCommand cmd = new SqlCommand(cmdText, con);//返回受影响(增删改)的行数int rows = cmd.ExecuteNonQuery();if (rows <= 0){throw new Exception("数据库操作失败");}return rows;}}}
}

3.找到app.config这个文件,在里面写入代码。保存后运行就能连接到数据库了。

    <connectionStrings>
        <add name ="ConStr" connectionString="Data Source=YYY\YYY;database=绩效考核管理;uid=绩效;pwd=123"/>
    </connectionStrings>

(这段代码的含义:<add name="MyConnectionString"  
         connectionString="Data Source=服务器名称(这里是可以改成网段的);Initial Catalog=数据库名称;User ID=用户名;Password=密码"/>  

 写模型(模型应用在用户管理界面)

职位库(身份下拉框):

namespace appraisal_system.Models
{public class AppraisalBases{public int Id { get; set; }public string baseType { get; set; }public int AppraisalBase { get; set; }public bool IsDel { get; set; }public static List<AppraisalBases> ListAll(){List<AppraisalBases> appraisalBases = new List<AppraisalBases>();DataTable dt = SqlHelper.ExecuteTable("select * from 职位库");foreach (DataRow dr in dt.Rows){appraisalBases.Add(ToModel(dr));}return appraisalBases;}private static AppraisalBases ToModel(DataRow dr){AppraisalBases appraisalBases = new AppraisalBases();appraisalBases.Id = (int)dr["ID"];appraisalBases.baseType = (string)dr["职位"];appraisalBases.AppraisalBase = (int)dr["职位奖金"];appraisalBases.IsDel = (bool)dr["是否辞职"];return appraisalBases;}}
}

人员库(在datagridview中显示):

代码和上面职位库的代码相同,需要哪个列就自己添加哪个,这边因为有些列不需要,数据库的代码得专门改一下。

DataTable dt = SqlHelper.ExecuteTable("SELECT u.ID ,u.用户名,u.性别,u.职位代码,u.是否辞职,a.职位,a.职位奖金 FROM 人员库 u LEFT JOIN 职位库 a ON u.职位代码 = a.ID");这段代码是SQL查询语句,其中LEFT JOIN是连接操作的一种。LEFT JOIN(左连接)是根据两个表之间的某个列进行匹配,返回左表中的所有记录以及右表中匹配的记录。如果没有在右表中找到匹配的记录,则返回NULL值。在这个查询中,人员库(u)和职位库(a)进行了左连接,连接条件是u.职位代码 = a.ID。这意味着返回的结果将包含人员库中的所有记录,以及与职位库中ID匹配的职位和职位奖金信息。如果没有找到匹配的职位库记录,职位和职位奖金字段将为NULL。通过使用LEFT JOIN,你可以获取人员库中的所有记录,即使在职位库中没有与之匹配的记录,也可以获得人员库中的信息。这对于需要获取人员完整信息但不必关注是否有匹配职位的情况很有用。

 目前的效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/178834.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享篇:我用数据分析做副业

主业是数据分析专家&#xff0c;副业是数据咨询顾问&#xff0c;过去十年里面利用数据分析发家致富 人生苦短&#xff0c;我学Python&#xff01; 利用技能可以解决的问题&#xff0c;哪些场景下可以催生出需求&#xff0c;深度剖析数据分析的技能树 由浅入深&#xff0c;一个…

js 变量声明与赋值 笔试踩坑题

文章目录 概述函数声明函数形参与实参函数预编译用一个例子说明一下&#xff0c;这四个步骤分别要干些什么。重复四个步骤&#xff0c;反复练习一下 全局编译多重执行期上下文 概述 别小看变量声明与赋值&#xff0c;在所有的笔试中&#xff0c;基本都会考&#xff0c;这个要多…

JS-项目实战-鼠标悬浮变手势(鼠标放单价上生效)

1、鼠标悬浮和离开事件.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格…

git 命令行回退版本

git 命令行回退版本 git 命令行回退版本命令: 1.切换到需要回退的分支 git checkout branch-v2.0.02.更新远程分支 git fetch3.找到需要回退版本的版本号git revert a6914da55ff40a09e67ac2426b86f1212e6580eb4.清除工作区缓存git clean -df5.强制提交git push -f

解决Python requests库不支持发送可迭代对象的问题

在加班的路上&#xff0c;bug是那永远的陪伴。对于程序员来说&#xff0c;bug就像黑暗中的萤火虫&#xff0c;虽然微弱却永远指引着前进的方向。今天&#xff0c;我们要探讨的是Python requests库在处理可迭代对象时遇到的问题&#xff0c;这是一道让许多开发者头痛的难题。本文…

阿里云今年服务器是真便宜,看看哪些云服务器值得买!

2023年双十一&#xff0c;阿里云推出了一项令人惊喜的独家优惠活动&#xff01;在这次活动中&#xff0c;阿里云开放了老用户购买权限&#xff0c;以超低的价格购买云服务器ECS经济型e实例。这款服务器配置了2核2G内存、3M固定带宽和40G ESSD entry系统盘。而且&#xff0c;更棒…

一个用于操作Excel文件的.NET开源库

推荐一个高性能、跨平台的操作Excel文件的.NET开源库。 01 项目简介 ClosedXML是一个.NET第三方开源库&#xff0c;支持读取、操作和写入Excel 2007 (.xlsx&#xff0c; .xlsm)文件&#xff0c;是基于OpenXML封装的&#xff0c;让开发人员无需了解OpenXML API底层API&#xf…

技巧篇:在Pycharm中配置集成Git

一、在Pycharm中配置集成Git 我们使用git需要先安装git工具&#xff0c;这里给出下载地址&#xff0c;下载后一路直接安装即可&#xff1a; https://git-for-windows.github.io/ 0. git中的一些常用词释义 Repository name&#xff1a; 仓库名称 Description(可选)&#xff1a;…

hyper-v外部网络,ssh服务正常,可以ping通虚拟机,但是无法远程连接虚拟机。

问题&#xff1a; ssh服务正常&#xff0c;可以ping通虚拟机&#xff0c;虚拟机可上网&#xff0c;一切正常&#xff0c;但是无法远程连接虚拟机。 报错&#xff1a;Network error: Connection refused 解决&#xff1a; 在本机的网络设置中&#xff0c;这个东西不知道是什么…

呼叫中心有什么特色功能呢,okcc呼叫系统

随着科技的发展&#xff0c;智能呼叫中系统的出现帮助不少企业解决了问题&#xff0c;那么呼叫中心有什么功能呢&#xff1f; 1、来电弹屏 呼叫中心通话弹出屏功能与系统提供的CRM系统相结合&#xff0c;可根据通话号码自动匹配客户数据&#xff0c;通话显示用户历史服务记录或…

使用xlwings实现对excel表中指定列隔行求和

需要对上表中的营业额隔行求和&#xff0c;即橙色背景颜色的求和&#xff0c;无背景颜色的求和。 看了大佬的视频&#xff0c;有两种方法&#xff1a; 1.加辅助列 2.使用判断行的奇偶函数&#xff0c;然后在用sumproduct函数 在此&#xff0c;我使用xlwings对excel表中数据…

2023 年是无代码的一年,还要程序员吗?

从 Code 到 No Code&#xff0c;IT 界对简化代码开发的需求由来已久&#xff1a;过去数十年的发展历程中&#xff0c;在企业应用程序开发上&#xff0c;我们研发出工作流、智能业务流程管理系统、低代码/无代码、还有高生产力应用程序平台等应用开发形式。 有一句话在 IT 界流…