微型软件设计

微型软件设计

工具使用

vs(C#windows窗口)+ Sql server (sql)

步骤

数据库

需要完成:数据库文件 + 数据库日志 + 数据库备份文件
步骤① 创建数据库,更改数据库文件以及日志文件的路径
步骤② 创建表以及插入数据

create table [表名]  #建表
(
[属性名1] varchar(8) not null,
[属性名2] varchar(50) not null,
[属性名3] varchar(2) check([EmpSex] = '男'or[EmpSex] = '女'),  #check使用方式,以及constraint使用方式
[属性名4] int  check([EmpAge]>0),
constraint 约束名 primary key ([属性5]) #外键
constraint FK_WORKS_EMPLOYEE foreign key([属性6]) references [EMPLOYEE]([EmpNo]) #  外键
)

UPDATE Customers
SET cust_email = 'kim@thetoystore.com'
WHERE cust_id = 1000000005;

DELETE FROM Customers
WHERE cust_id = 1000000006;

insert into [EMPLOYEE] values('E01','张三','女','32')  #插入语句
UNIQUE  #唯一约束
DEFAULT '0' #默认值

upper 改大写
lower 改小写

游标
声明:
declare <name> cursor
for
select 语句
打开
open <name>
抓取
fetch ... from  游标名    into ...
关闭
close <name>
释放
deallocate <name>
@@fetch_status(大写) 
局部变量@   全局变量@@

case when then(CASE education
	--当education等于大专时,学历等级就为2
	WHEN '大专' THEN 2
	WHEN '中专' THEN 3
	WHEN '本科' THEN 1
	--否则学历等级都为4
	ELSE 4
END) 

if (表达式,1,值2)

③备份数据库,数据库->任务->备份 命名为backupInfo.bak

C#

1.前提
①数据库相关文件:

因为数据库数据不属于本地的   ,所以要继承IDisposable,这样才能关闭数据库
初始化:使用链接字符串连接数据库,并打开连接
创建两个方法一个是查询一个更改
    class DB : IDisposable //no
    {
        private SqlConnection sqlConnection;

        public DB()
        {
            sqlConnection = new SqlConnection(@"server=.;database=SCNT;integrated security=SSPI;");//no
            sqlConnection.Open();
        }

        public DataTable getBySql(string sql)
        {
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(new SqlCommand(sql, sqlConnection));//no
            DataTable dataTable = new DataTable();
            sqlDataAdapter.Fill(dataTable); // no
            return dataTable;
        }

        public void setBySql(string sql)
        {
            new SqlCommand(sql, sqlConnection).ExecuteNonQuery();//要用ExecuteNonQuery方法
        }
        public void Dispose()
        {
            sqlConnection.Close();
        }
    }

②字典,窗口值传输

    class Intent
    {
        public static Dictionary<string, Object> dict = new Dictionary<string, object>();//
    }

③窗口属性设置
Form1.cs
Load:所属函数
listView:
MultiSelect 关闭(不可以同时选择多个)
view Detail
GridLine显示下划线
FullRowSelect true 选择一行可得到整行数据
comBox :
DropDownStyle:DropDownList 窗口下拉方向
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    ④代码实现
        DB db;
        public Form1()
        {
            InitializeComponent();
            db = new DB();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //员工表 增删改查:查
            //生成表头
            listView1.Columns.Add("员工号", listView1.Width / 4 - 1, HorizontalAlignment.Left);//HorizontalAlignment的作用
            listView1.Columns.Add("员工姓名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("性别", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView1.Columns.Add("年龄", listView1.Width / 4 - 1, HorizontalAlignment.Left);


            //表的内容
            DataTable table = db.getBySql(@"select [EmpNo],[EmpName],[EmpSex],[EmpSex] from [EMPLOYEE]");
            listView1.BeginUpdate();//no
            for (int i = 0; i < table.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem(); //no
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j == 0)
                    {
                        listViewItem.Text = table.Rows[i][j] + "";//
                    }
                    else
                    {
                        listViewItem.SubItems.Add(table.Rows[i][j] + "");
                    }
                }
                listView1.Items.Add(listViewItem);
            }
            listView1.EndUpdate();

            //查询3-1
            //加载现有员工号
            table = db.getBySql(@"select [EmpNo] from [EMPLOYEE]");
            for (int i = 0; i < table.Rows.Count; i++)
            {
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    comboBox1.Items.Add(table.Rows[i][j] + "");//comboBox可以屏蔽表的第一空项
                }
            }
            comboBox1.SelectedIndex = 0;//no
            //员工名
            table = db.getBySql(@"select [EmpName] from [EMPLOYEE]");
            for (int i = 0; i < table.Rows.Count; i++)
            {
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    comboBox2.Items.Add(table.Rows[i][j] + "");
                }
            }
            comboBox2.SelectedIndex = 0;//初始选择项

            listView3.Columns.Add("员工号", listView1.Width / 5 - 1, HorizontalAlignment.Left);//HorizontalAlignment的作用
            listView3.Columns.Add("员工姓名", listView1.Width / 5 - 1, HorizontalAlignment.Left);
            listView3.Columns.Add("性别", listView1.Width / 5 - 1, HorizontalAlignment.Left);
            listView3.Columns.Add("年龄", listView1.Width / 5 - 1, HorizontalAlignment.Left);
            listView3.Columns.Add("总工资", listView1.Width / 5 - 1, HorizontalAlignment.Left);

            table = db.getBySql(@"select [EMPLOYEE].[EmpNo],[EMPLOYEE].[EmpName],[EMPLOYEE].[EmpSex],[EMPLOYEE].[EmpAge],sum([WORKS].[Salary]) as '总工资' " +
                " from [EMPLOYEE],[WORKS]"+
                " where [EMPLOYEE].[EmpAge]>=40"+
                " and [EMPLOYEE].[EmpNo]=[WORKS].[EmpNo]"+
                " group by [EMPLOYEE].[EmpNo],[EMPLOYEE].[EmpName],[EMPLOYEE].[EmpSex],[EMPLOYEE].[EmpAge]"+
                " order by '总工资' desc");
            listView3.BeginUpdate();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem(); //no
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = table.Rows[i][j] + "";
                    }
                    else
                    {
                        listViewItem.SubItems.Add(table.Rows[i][j] + "");
                    }
                }
                listView3.Items.Add(listViewItem);
            }
            listView3.EndUpdate();
            //3-3
            listView4.Columns.Add("员工姓名", listView1.Width / 2 - 2, HorizontalAlignment.Left);
            listView4.Columns.Add("公司名", listView1.Width / 2 - 2, HorizontalAlignment.Left);
            table = db.getBySql(@"select [EMPLOYEE].[EmpName],[COMPANY].[CmpName] from [EMPLOYEE],[COMPANY],[WORKS],(" +
                " select [EmpName],count([CmpName]) as 'CmpNum'"+
                " from [EMPLOYEE],[WORKS],[COMPANY]"+
                " where [EMPLOYEE].[EmpNo]=[WORKS].[EmpNo]"+
                " and [COMPANY].[CmpNo]=[WORKS].[CmpNo]"+
                " group by [EmpName]"+
                " having count([CmpName])>1"+
                " ) as t1" +
                " where [EMPLOYEE].[EmpNo]=[WORKS].[EmpNo]"+
                " and [COMPANY].[CmpNo]=[WORKS].[CmpNo]" +
                " and [COMPANY].[CmpNo]=[WORKS].[CmpNo]");
            listView4.BeginUpdate();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem(); //no
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = table.Rows[i][j] + "";
                    }
                    else
                    {
                        listViewItem.SubItems.Add(table.Rows[i][j] + "");//SubItems
                    }
                }
                listView4.Items.Add(listViewItem);
            }
            listView4.EndUpdate();
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();//no
            Intent.dict["form1_text"] = this.Text;
            Intent.dict["form1_flag"] = 0;
            if(form2.ShowDialog() == DialogResult.OK)//no
            {
                bool canAdd = true;
                foreach(ListViewItem item in this.listView1.Items)//no
                {
                    if(Intent.dict["form2_textbox1_text"] + "" == item.SubItems[0].Text)
                    {
                        canAdd = false;
                        MessageBox.Show("已存在该员工号!", this.Text);
                        break;
                    }
                }
                Regex regex = new Regex("^[0-9]*$");  //正则表达式
                if (!regex.IsMatch(Intent.dict["form2_textbox3_text"] + ""))
                {
                    canAdd = false;
                    MessageBox.Show("年龄不为正数!",this.Text);
                }
                if (canAdd)
                {
                    ListViewItem listViewItem = new ListViewItem();
                    listViewItem.Text = Intent.dict["form2_textbox1_text"] + "";
                    listViewItem.SubItems.Add(Intent.dict["form2_textbox2_text"] + "");
                    listViewItem.SubItems.Add(Intent.dict["form2_radioButton"] + "");
                    listViewItem.SubItems.Add(Intent.dict["form2_textbox3_text"] + "");
                    listView1.Items.Add(listViewItem);
                    db.setBySql("insert into [EMPLOYEE] values('" + Intent.dict["form2_textbox1_text"] + "','" + Intent.dict["form2_textbox2_text"] + "','"+ Intent.dict["form2_radioButton"] + "',"+ Intent.dict["form2_textbox3_text"] + ")");
                }

            }
        }

        private void Button2_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();//no
            Intent.dict["form1_text"] = this.Text;
            Intent.dict["form1_flag"] = 1;
            Intent.dict["form1_selectedItems0"] = listView1.SelectedItems[0].SubItems[0].Text;
            Intent.dict["form1_selectedItems1"] = listView1.SelectedItems[0].SubItems[1].Text;
            Intent.dict["form1_selectedItems2"] = listView1.SelectedItems[0].SubItems[2].Text;
            Intent.dict["form1_selectedItems3"] = listView1.SelectedItems[0].SubItems[3].Text;

            if (form2.ShowDialog() == DialogResult.OK)
            {
                bool canUpdate = true;
                if (!((Intent.dict["form1_selectedItems0"] + "") == (Intent.dict["form2_textbox1_text"] + ""))){
                    foreach (ListViewItem item in this.listView1.Items)//no
                    {
                        if (Intent.dict["form2_textbox1_text"] + "" == item.SubItems[0].Text)
                        {
                            canUpdate = false;
                            MessageBox.Show("已存在该员工号!", this.Text);
                            break;
                        }
                    }
                }
                Regex regex = new Regex("^[0-9]*$");  //正则表达式
                if (!regex.IsMatch(Intent.dict["form2_textbox3_text"] + ""))
                {
                    canUpdate = false;
                    MessageBox.Show("年龄不为正数");
                }
                if (canUpdate)
                {
                    ListViewItem listViewItem = new ListViewItem();
                    listViewItem.Text = Intent.dict["form2_textbox1_text"] + "";
                    listViewItem.SubItems.Add(Intent.dict["form2_textbox2_text"] + "");
                    listViewItem.SubItems.Add(Intent.dict["form2_radioButton"] + "");
                    listViewItem.SubItems.Add(Intent.dict["form2_textbox3_text"] + "");
                    db.setBySql("update [EMPLOYEE] set [EmpNo] = '" + Intent.dict["form2_textbox1_text"] + "'where [EmpNo] = '"+ Intent.dict["form1_selectedItems0"] + "'; ");
                    db.setBySql("update [EMPLOYEE] set [EmpName] = '" + Intent.dict["form2_textbox2_text"] + "'where [EmpName] = '" + Intent.dict["form1_selectedItems1"] + "'; ");
                    db.setBySql("update [EMPLOYEE] set [EmpSex] = '" + Intent.dict["form2_radioButton"] + "'where [EmpSex] = '" + Intent.dict["form1_selectedItems2"] + "'; ");
                    db.setBySql("update [EMPLOYEE] set [EmpAge] = '" + Intent.dict["form2_textbox3_text"] + "'where [EmpAge] = '" + Intent.dict["form1_selectedItems3"] + "'; ");
                    listView1.Clear();
                    listView1.Items.Add(listViewItem);
                }

            }
        }
        private void Button3_Click(object sender, EventArgs e)
        {
            db.setBySql("delete from [EMPLOYEE] where [EmpNo]='" + listView1.SelectedItems[0].Text + "';");
            listView1.SelectedItems[0].Remove();
        } 
        private void Button4_Click(Object sender,EventArgs e)
            
        {
            listView2.Clear();
            listView2.Columns.Add("员工号", listView1.Width / 4 - 1, HorizontalAlignment.Left);//HorizontalAlignment的作用
            listView2.Columns.Add("员工姓名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView2.Columns.Add("公司名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView2.Columns.Add("薪水", listView1.Width / 4 - 1, HorizontalAlignment.Left);

            DataTable table = db.getBySql(@"select [EMPLOYEE].[EmpNo],[EMPLOYEE].[EmpName],[COMPANY].[CmpName],[WORKS].[Salary] from [EMPLOYEE],
[COMPANY],[WORKS]" + 
        " where [EMPLOYEE].[EmpNo]=[WORKS].[EmpNo]" + 
        " and [COMPANY].[CmpNo]=[WORKS].[CmpNo]" + 
        " and [EMPLOYEE].[EmpNo]='" + comboBox1.Text+ "'");
            listView2.BeginUpdate();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem(); //no
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = table.Rows[i][j] + "";
                    }
                    else
                    {
                        listViewItem.SubItems.Add(table.Rows[i][j] + "");
                    }
                }
                listView2.Items.Add(listViewItem);
            }
            listView2.EndUpdate();

        }
        private void Button5_Click(object sender, EventArgs e)
        {
            listView2.Clear();
            listView2.Columns.Add("员工号", listView1.Width / 4 - 1, HorizontalAlignment.Left);//HorizontalAlignment的作用
            listView2.Columns.Add("员工姓名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView2.Columns.Add("公司名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
            listView2.Columns.Add("薪水", listView1.Width / 4 - 1, HorizontalAlignment.Left);

            DataTable table = db.getBySql(@"select [EMPLOYEE].[EmpNo],[EMPLOYEE].[EmpName],[COMPANY].[CmpName],[WORKS].[Salary] from [EMPLOYEE],
[COMPANY],[WORKS]" +
        " where [EMPLOYEE].[EmpNo]=[WORKS].[EmpNo]" +
        " and [COMPANY].[CmpNo]=[WORKS].[CmpNo]" +
        " and [EMPLOYEE].[EmpName]='" + comboBox2.Text + "'");
            listView2.BeginUpdate();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                ListViewItem listViewItem = new ListViewItem(); //no
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (j <= 0)
                    {
                        listViewItem.Text = table.Rows[i][j] + "";
                    }
                    else
                    {
                        listViewItem.SubItems.Add(table.Rows[i][j] + "");
                    }
                }
                listView2.Items.Add(listViewItem);
            }
            listView2.EndUpdate();

        }
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(Object sender,EventArgs e)
        {
            if ((int)Intent.dict["form1_flag"] == 0)
            {
                this.Text = Intent.dict["form1_text"] + "";
                textBox1.Focus();
            }
            else
            {
                this.Text = Intent.dict["form1_text"] + "";
                textBox1.Text = Intent.dict["form1_selectedItems0"]+"";
                textBox2.Text = Intent.dict["form1_selectedItems1"] + "";
                if(Intent.dict["form1_selectedItems2"] + "" == "男")
                {
                    radioButton1.Checked = true;
                }
                else
                {
                    radioButton2.Checked = true;
                }
                textBox3.Text = Intent.dict["form1_selectedItems3"] + "";
                textBox1.Focus();
                textBox1.SelectAll();
            }
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            if(textBox1.Text == "" || textBox2.Text == ""|| textBox3.Text == ""||(!radioButton1.Checked && !radioButton2.Checked))
            {
                MessageBox.Show("任意一项没有完成填写", this.Text);
            }
            else
            {
                Intent.dict["form2_textbox1_text"] = textBox1.Text;
                Intent.dict["form2_textbox2_text"] = textBox2.Text;
                if (radioButton1.Checked)
                {
                    Intent.dict["form2_radioButton"] = "男";
                }
                else
                {
                    Intent.dict["form2_radioButton"] = "女";
                }
                Intent.dict["form2_textbox3_text"] = textBox3.Text;
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值