一个小型公司人工费用核算winform查询开发(1)

开发思路:数据库一张表里存储所有员工薪酬数据,除了员工和时间信息,还有2个数字字段:薪酬、公司承担五险一金。一次性提取出来,然后利用c#对list的操作,包括linq技术。通过选择部门、员工、时间对员工薪酬进行随意查询。

本小节用到的技术:连接数据库提取数据到list中。其中private jmjm objjmjm = new jmjm();是对连接字符串的加密解密环节,可以忽视。

1.这是人工核算的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Models
{
    [Serializable]
    public class rg
    {
        public bool fx { get; set; }  //复选
        public string year { get; set; }// 年
        public string month { get; set; }//月份
        public string bmbm { get; set; }//部门编码
        public string bmtxt { get; set; }//部门文本
        public string name { get; set; }//员工
        public string ygfl { get; set; } //员工分类
        public decimal xc { get; set; } //薪酬
        public decimal wxyj { get; set; } //企业承担五险一金
        public decimal total { get; set; } //总计
    }
}

基本和数据库表字段对应的,这是数据库表截图。分别对应如上。这个小查询一次性把历年所有数据都提取出来。

2.数据库取数代码

 下面是连接数据库的代码 放入List<rg>中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using Models;
using Oracle.ManagedDataAccess.Client;
using System.Collections;
using System.Configuration;
using System.Windows.Forms;

namespace DAL
{
   public class rgdataprocess
    {

        private jmjm objjmjm = new jmjm();

        private static string connString_ORACLE = ConfigurationManager.ConnectionStrings["connString_oracle"].ToString();


        public List<rg> Getbm()//获取部门
        {
            string xx = objjmjm.Decrypt(connString_ORACLE);

            List<rg> rgdata = new List<rg>();

            OracleConnection conn = new OracleConnection(objjmjm.Decrypt(connString_ORACLE));


            try
            {
                conn.Open();
                var cmd = conn.CreateCommand();
                cmd.CommandText = " select  *  from rg order by bmbm ";
                cmd.CommandType = CommandType.Text;
                var reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    rgdata.Add(new rg()
                    {
                        year = reader["year"].ToString(),
                        month = reader["month"].ToString(),
                        bmbm = reader["bmbm"].ToString(),
                        bmtxt = reader["bmtxt"].ToString(),
                        name = reader["name"].ToString(),
                        xc = Convert.ToDecimal(reader["xc"]),
                        wxyj = Convert.ToDecimal(reader["wxyj"]) ,
                        total = Convert.ToDecimal(reader["xc"]) + Convert.ToDecimal(reader["wxyj"])

                    });

                    

                }

            }
            catch (Exception ex)
            {
                string errorInfo = "connect GS oracle false " + ex.Message;
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return rgdata;

        }


    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一个简单的WinForm动作游戏的框架,您可以在此基础上进行开发和扩展。 首先,您需要创建一个WinForm应用程序并添加一个PictureBox控件。此控件将用于呈现游戏世界。接下来,您需要设计游戏世界,包括玩家、敌人和其他对象,以及它们的行为和交互。在此示例中,我们将使用简单的图像作为游戏对象。 接下来,您需要编写代码来处理游戏逻辑。以下是一个简单的示例,其中玩家使用箭头键控制并可以消灭敌人: ```csharp public partial class Form1 : Form { private Bitmap playerImage; private Bitmap enemyImage; private Rectangle playerRect; private List<Rectangle> enemyRects; private Timer gameTimer; public Form1() { InitializeComponent(); playerImage = new Bitmap("player.bmp"); enemyImage = new Bitmap("enemy.bmp"); playerRect = new Rectangle(0, 0, playerImage.Width, playerImage.Height); enemyRects = new List<Rectangle>(); enemyRects.Add(new Rectangle(100, 100, enemyImage.Width, enemyImage.Height)); gameTimer = new Timer(); gameTimer.Interval = 16; // 60 fps gameTimer.Tick += GameTimer_Tick; gameTimer.Start(); } private void GameTimer_Tick(object sender, EventArgs e) { // Move player if (Keyboard.IsKeyDown(Keys.Left)) { playerRect.X -= 5; } if (Keyboard.IsKeyDown(Keys.Right)) { playerRect.X += 5; } if (Keyboard.IsKeyDown(Keys.Up)) { playerRect.Y -= 5; } if (Keyboard.IsKeyDown(Keys.Down)) { playerRect.Y += 5; } // Check for collision with enemies for (int i = enemyRects.Count - 1; i >= 0; i--) { if (playerRect.IntersectsWith(enemyRects[i])) { enemyRects.RemoveAt(i); } } // Redraw game world pictureBox1.Invalidate(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { // Draw player e.Graphics.DrawImage(playerImage, playerRect); // Draw enemies foreach (Rectangle rect in enemyRects) { e.Graphics.DrawImage(enemyImage, rect); } } } ``` 在此示例中,我们使用了一个计时器,每隔16毫秒调用一次GameTimer_Tick方法。在此方法中,我们处理玩家输入并更新游戏世界。然后,我们使用Invalidate方法通知PictureBox重新绘制游戏世界。 您可以根据需要添加其他游戏对象和行为。希望这可以帮助您开始编写WinForm动作游戏!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT技术与企业应用结合的爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值