绿像库存管理系统

系统设计

1.系统功能结构



 

 

 

 

 

 

2.系统业务流程图


 

3数据库与数据库表设计



 

3.1数据库

 

 

3.2数据库表设计

3-1  报表BaoBiao

列名

数据类型

可否为空

说明

XuHao

int

Not null

序号

WuPinMingCheng

nchar(10)

 

物品名称

DanWei

nchar(10)

 

单位

GuiGe

nchar(10)

 

规格

ShuLiang

nchar(10)

 

数量

DanWeiLeiBie

nchar(3)

 

单位类别

RiQi

datetime

 

日期

LeiBie

nchar(3)

 

类别

3-2  出入库表ChuRuKuBiao

列名

数据类型

可否为空

说明

LiuShuiHao

int

Not null

流水号

WuPinMingCheng

nchar(10)

 

物品名称

GongYingShang

nchar(10)

 

供应商

GuiGe

nchar(5)

 

规格

ShuLiang

nchar(5)

 

数量

JinHuoDanJia

nchar(10)

 

进货单价

XiaoShouDanJia

nchar(10)

 

销售单价

DanWei

nchar(5)

 

单位

RiQi

datetime

 

日期

LeiBie

nchar(4)

 

类别

KeHuMingCheng

nchar(10)

 

客户名称

 

3-3  货品表HuoPinBiao

列名

数据类型

可否为空

说明

HuoPinID

int

Not null

流水号

HuoPinFenLeiMingCheng

nchar(10)

 

货品分类名称

WuPinMingCheng

nchar(10)

 

物品名称

GuiGe

nchar(5)

 

规格

DanWei

nchar(5)

 

单位

GongYingShang

nchar(10)

 

供应商

 

3-4  货品分类表HuoPinFenLeiBiao

列名

数据类型

可否为空

说明

HuoPinFenLeiMingCheng

nchar(10)

Not null

货品分类名称

 

3-5  记录作废表JiLuZuoFeiBiao

列名

数据类型

可否为空

说明

LiuShuiHao

int

Not null

流水号

WuPinMingCheng

nchar(10)

 

物品名称

GongYingShang

nchar(10)

 

供应商

GuiGe

nchar(5)

 

规格

ShuLiang

nchar(5)

 

数量

JinHuoDanJia

nchar(10)

 

进货单价

XiaoShouDanJia

nchar(10)

 

销售单价

DanWei

nchar(5)

 

单位

RiQi

datetime

 

日期

LeiBie

nchar(4)

 

类别

KeHuMingCheng

nchar(10)

 

客户名称

 

 

3-6  库存表KuCunBiao

列名

数据类型

可否为空

说明

WuPinID

nchar(10)

Not null

流水号

WuPinMingCheng

nchar(10)

 

货品分类名称

GongYingShang

nchar(10)

 

供应商

ShuLiang

int

 

数量

DanWei

nchar(10)

 

单位

GuiGe

nchar(10)

 

规格

JinHuoDanJia

nchar(10)

 

进货单价

 

3-7  库存修改记录表KuCunXiuGaiJiLuBiao

列名

数据类型

可否为空

说明

LiuShuiHao

int

Not null

流水号

WuPinMingCheng

nchar(10)

 

货品分类名称

GongYingShang

nchar(10)

 

供应商

GuiGe

nchar(10)

 

规格

ShuLiang

int

 

数量

DanWei

nchar(10)

 

单位

RiQi

datetime

 

日期

XiuGaiYuanYin

nchar(30)

 

修改原因

 

3-8 系统日志表XiTongRiZhiBiao

列名

数据类型

可否为空

说明

ID

int

Not null

流水号

DengLuMing

nchar(10)

 

登录名

DengLuShiJian

datetime

 

登录时间

TuiChuShiJian

datetime

 

退出时间

 

3-9  用户表YongHuBiao

列名

数据类型

可否为空

说明

YongHuID

int

Not null

用户ID

XingMing

nchar(10)

 

姓名

MiMa

nchar(10)

 

密码

ChongFuMiMa

nchar(10)

 

重复密码

ChuShiHua

bit

 

初始化

ZiDuanXiuGai

bit

 

字段修改

XiuGaiKuCun

bit

 

修改库存

ShanChuKuCun

bit

 

删除库存

JiLuXiuGai

bit

 

记录修改

JiLuZuoFei

bit

 

记录作废

QingKongZuoFei

bit

 

清空作废

CheDiShanChu

bit

 

彻底删除

 

3.3数据表关系



 

 

 

 

4.项目内容

4.1 文件夹组织结构图



 

 

 

 

4.2基础类设计

基础类名称:BaseClass

主要包括方法:创建数据库连接错误信息提示录入数据到数据库表删除数据库表里的数据更新数据库表里的数据查找数据库表里的数据生成自动编号

 

 

4.3 登录模块

模块功能描述:登录验证,输入用户名与密码与数据库进行交互验证登陆

功能截图:



 

 

主要代码

//判断符合要求的用户登录基本信息(姓名和密码)

                    conn.Open();

                    SqlCommand cmd = new SqlCommand("select * from YongHuBiao where  XingMing='" + comboBox1.Text.Trim() + "'and MiMa='" + textBox1.Text.Trim() + "'", conn);

                    SqlDataReader sdr = cmd.ExecuteReader();//创建读取数据对象

                    sdr.Read();//读取数据

                    if (sdr.HasRows)

                    {

                        sdr.Close();

                        frmMain f = new frmMain();

                        f.toolStripStatusLabel2.Text = comboBox1.Text.Trim();       //记录当前登录人的名字

 

                        #region 判断符合要求的用户登录的权限信息

                        sdr.Close();

                        string sql = "select XingMing,ChuShiHua as '初始化',ZiDuanXiuGai as'字段修改',XiuGaiKuCun as'修改库存',ShanChuKuCun as'删除库存',JiLuXiuGai as '记录修改',JiLuZuoFei as'记录作废',QingKongZuoFei as '清空作废',CheDiShanChu as '彻底删除'from YongHuBiao where XingMing='" + comboBox1.Text.Trim() + "'";

                        SqlDataAdapter sda = new SqlDataAdapter(sql, conn);

                        DataSet lds = new DataSet();

                        sda.Fill(lds);

                        if (Convert.ToBoolean(lds.Tables[0].Rows[0]["初始化"]))

                        {

                            f.系统初始化ToolStripMenuItem.Enabled = true;

                        }

                        else 

                        {

                            f.系统初始化ToolStripMenuItem.Enabled = false;

                        }

 

                        if (Convert.ToBoolean(lds.Tables[0].Rows[0]["字段修改"]))

                        {

                            f.字段修改ToolStripMenuItem.Enabled = true;

                        }

                        else

                        {

                            f.字段修改ToolStripMenuItem.Enabled = false;

                        }

 

                        if (Convert.ToBoolean(lds.Tables[0].Rows[0]["修改库存"]))

                        {

                            f.修改库存数量ToolStripMenuItem.Enabled = true;

                        }

                        else

                        {

                            f.修改库存数量ToolStripMenuItem.Enabled = false;

                        }

 

                        if (Convert.ToBoolean(lds.Tables[0].Rows[0]["删除库存"]))

                        {

                            f.本条库存删除ToolStripMenuItem.Enabled = true;

                        }

                        else

                        {

                            f.本条库存删除ToolStripMenuItem.Enabled = false;

                        }

                        #endregion

 

                        #region 记录系统日志

 

                        //自动生成物品编号

                        string a = "select  max(ID) from XiTongRiZhiBiao";

                        string ID = BaseClass.ShengChengBianHao(a);

                        //添加

                        string sql1 = "insert into XiTongRiZhiBiao(ID,DengLuMing,DengLuShiJian) values('" + ID + "','" + comboBox1.Text.Trim() + "','" + DateTime.Now.ToString() + "')";

                        SqlCommand cmd1 = new SqlCommand(sql1, conn);//创建SQL语句执行对象

                        cmd1.ExecuteNonQuery();//执行SQL语句

 

                        #endregion

 

                        BaseClass.Message("登陆成功!""恭喜");

                        this.Hide();

                        f.Show();

                    }

                    else

                    {

                        sdr.Close();

                        BaseClass.Message("提示:用户名或密码错误!""警告");

                    }

                    conn.Close();

 

4.4 主界面



 

 

 

4.5 基础数据管理模块

基础数据管理模块主要包括对物品注册、用户的管理。

模块功能描述:添加、修改、删除物品分类信息或物品信息;用户设置窗体主要实现添加或删除用户、修改密码或权限。

功能截图:

           


 
     

主要代码:

//保存用户权限信息

 private void button6_Click(object sender, EventArgs e)

        {

            if (ChuShiHua.Checked == false && ZiDuanXiuGai.Checked == false && XiuGaiKuCun.Checked == false && ShanChuKuCun.Checked == false && JiLuXiuGai.Checked == false && JiLuZuoFei.Checked == false && QingKongZuoFei.Checked == false && CheDiShanChu.Checked == false)

            {

                MessageBox.Show("请输入权限数据!""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            else

            {

                conn.Open();

                SqlCommand cmd = new SqlCommand("select * from YongHuBiao where XingMing='" + Convert.ToString(dataGridView1.SelectedCells[0].Value) + "'", conn);

                SqlDataReader sdr = cmd.ExecuteReader();

                sdr.Read();

                if (sdr.HasRows)

                {

                    sdr.Close();

                    string sql = "update YongHuBiao set ChuShiHua='" + ChuShiHua.Checked.ToString().Trim() + "',ZiDuanXiuGai='" + ZiDuanXiuGai.Checked.ToString().Trim() + "',XiuGaiKuCun='" + XiuGaiKuCun.Checked.ToString().Trim() + "',ShanChuKuCun='" + ShanChuKuCun.Checked.ToString().Trim() + "',JiLuXiuGai='" + JiLuXiuGai.Checked.ToString().Trim() + "',JiLuZuoFei='" + JiLuZuoFei.Checked.ToString().Trim() + "',QingKongZuoFei='" + QingKongZuoFei.Checked.ToString().Trim() + "',CheDiShanChu='" + CheDiShanChu.Checked.ToString().Trim() + "' where XingMing='" + Convert.ToString(dataGridView1.SelectedCells[0].Value) + "'";

                    BaseClass.UpdateData(sql);

                }

                else

                {

                    MessageBox.Show("修改失败!""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

                }

                conn.Close();

            }

            button7_Click(sender, e);

        }

 

//执行向'货品类别表'中录入数据

        private void button2_Click(object sender, EventArgs e)

        {

            //分组名称不能为空

            if (textBox1.Text == "")

            {

                MessageBox.Show("请填写新分组名称!""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            else

            {

                try 

                {

                    //录入数据

                    string sql = "insert into HuoPinFenLeiBiao(HuoPinFenLeiMingCheng) values('" + textBox1.Text.Trim() + "')";

                    BaseClass.InsertData(sql);

                    textBox1.Text = "";

                }

                catch (Exception)

                {

                    BaseClass.Message("提示:该类别已存在!""警告");

                }

            }

        }

//执行向'货品类别表'中删除数据

        private void button1_Click(object sender, EventArgs e)

        {

            if (dataGridView1.SelectedRows.Count == 0)

            {

                BaseClass.Message("提示:请选择要删除的信息!""警告");

            }

            else

            {

                string Mid = Convert.ToString(dataGridView1.SelectedCells[0].Value).Trim();       //创建一个变量获取选中的数据

                DialogResult ts = MessageBox.Show("你确认要删除该类别中所有物品数据吗?""提示"MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

                if (ts == DialogResult.Yes)

                {

                    string sql = "delete from HuoPinFenLeiBiao where HuoPinFenLeiMingCheng='" + Mid + "'";   //删除选中数据

                    BaseClass.DeleteData(sql);

                }

            }

        }

//'frmBuyStockList'窗体传输数据

        private void dataGridView2_CellDoubleClick(object sender, DataGridViewCellEventArgs e)

        {

            //识别是那一个窗体调用frmSelect窗口

            if (M_str_object == "BuyStock")

            {

                buyStock.textBox3.Text = dataGridView2[0, e.RowIndex].Value.ToString();

                buyStock.textBox6.Text = dataGridView2[1, e.RowIndex].Value.ToString();

                buyStock.textBox4.Text = dataGridView2[2, e.RowIndex].Value.ToString();

                buyStock.textBox5.Text = dataGridView2[3, e.RowIndex].Value.ToString();

                this.Close();

            }

            if (M_str_object == "BaoBiao")

            {

                BaoBiao.textBox1.Text = dataGridView2[0, e.RowIndex].Value.ToString();

                BaoBiao.textBox2.Text = dataGridView2[2, e.RowIndex].Value.ToString();

                BaoBiao.textBox3.Text = dataGridView2[1, e.RowIndex].Value.ToString();

                this.Close();

            }

            if (M_str_object == "PanDian")

            {

                PanDian.textBox1.Text = dataGridView2[0, e.RowIndex].Value.ToString();

                this.Close();

                string sql = "select WuPinMingCheng as '物品名称',GongYingShang as '供应商',ShuLiang as '数量',DanWei as '单位',GuiGe as '规格',JinHuoDanJia as '进货单价'from KuCunBiao where WuPinMingCheng = '" + dataGridView2.SelectedCells[0].Value.ToString() + "'";

                PanDian.dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];           //调用基础类中的FindData()方法实现查找功能

            }

        }

 

 

4.6  基础模块

基础模块包括:入库、出库、盘点、查询、报表、右键菜单。此模块主要调用类中方法来实现功能。(代码详情参考源代码)

入库:     


 
  

主要代码:

        private void button1_Click(object sender, EventArgs e)

        {

            //物品信息、数量和进货单价不能为空

            if (textBox1.Text == "" || textBox2.Text == ""||textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "")

            {

                MessageBox.Show("请先选择物品然后输入数量和进货单价!""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            else

            {

                //判断库存中是否存在相同的物品

                conn.Open();

                SqlCommand cmd = new SqlCommand("select * from KuCunBiao where WuPinMingCheng='" + textBox3.Text.Trim() + "'", conn);

                SqlDataReader sdr = cmd.ExecuteReader();

                sdr.Read();

                if (sdr.HasRows)

                {

                    sdr.Close();

                    //更新物品的数量

                    SqlDataAdapter da = new SqlDataAdapter("select ShuLiang from KuCunBiao where WuPinMingCheng='" + textBox3.Text.Trim() + "'", conn);        //提取符合要求的整行数据

                    DataSet ds = new DataSet();

                    da.Fill(ds,"KuCunBiao");                //填充数据

                    int YuanShuLiang = Convert.ToInt32(ds.Tables["KuCunBiao"].Rows[0][0]);                  //提取符合要求的一个数据

                    int XinShuLiang = YuanShuLiang + Convert.ToInt32(textBox1.Text.Trim());                 //计算新数量

                    string sql2 = "update KuCunBiao set ShuLiang  ='" + XinShuLiang + "',JinHuoDanJia='" + textBox2.Text.Trim() + "'where WuPinMingCheng='" + textBox3.Text.Trim() + "'";

                    BaseClass.UpdateData(sql2);

                }

                else

                {

                    //自动生成编号

                    string a = "select  max(WuPinID) from KuCunBiao";

                    string KuCunBiaoID = BaseClass.ShengChengBianHao(a);

                    //执行向'库存表'中录入数据

                    string sql = "insert into KuCunBiao(WuPinID,WuPinMingCheng,GongYingShang,ShuLiang,DanWei,GuiGe) values('" + KuCunBiaoID + "','" + textBox3.Text.Trim() + "','" + textBox5.Text.Trim() + "','" + textBox1.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + textBox6.Text.Trim() + "')";

                    BaseClass.InsertData(sql);

                }

                //自动生成物品编号

                string a1 = "select  max(LiuShuiHao) from ChuRuKuBiao";

                string ChuRuKuBiaoID = BaseClass.ShengChengBianHao(a1);

                //执行向'出入库表'中录入数据

                string sql1 = "insert into ChuRuKuBiao(LiuShuiHao,WuPinMingCheng,GongYingShang,ShuLiang,DanWei,GuiGe,JinHuoDanJia,XiaoShouDanJia,RiQi,LeiBie,KeHuMingCheng) values('" + ChuRuKuBiaoID + "','" + textBox3.Text.Trim() + "','" + textBox5.Text.Trim() + "','" + textBox1.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + textBox6.Text.Trim() + "','" + textBox2.Text.Trim() + "','0','" + DateTime.Now.ToString() + "','入库','')";

                BaseClass.InsertData(sql1);

                conn.Close();

                button2_Click(sender, e);

            }

        }

 

出库:    


 
 主要代码:

private void button1_Click(object sender, EventArgs e)

        {

            if (textBox4.Text == "" || textBox8.Text == "" || textBox9.Text == "")

            {

                MessageBox.Show("请输入销售单价、出库数和客户名称!""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            else

            {

                //判断库存中是否存在相同的物品

                conn.Open();

                SqlCommand cmd = new SqlCommand("select * from KuCunBiao where WuPinMingCheng='" + textBox1.Text.Trim() + "'", conn);

                SqlDataReader sdr = cmd.ExecuteReader();

                sdr.Read();

                if (sdr.HasRows)

                {

                    sdr.Close();

                    //更新物品的数量

                    SqlDataAdapter da = new SqlDataAdapter("select ShuLiang from KuCunBiao where WuPinMingCheng='" + textBox1.Text.Trim() + "'", conn);        //提取符合要求的整行数据

                    DataSet ds = new DataSet();

                    da.Fill(ds, "KuCunBiao");                //填充数据

                    int YuanShuLiang = Convert.ToInt32(ds.Tables["KuCunBiao"].Rows[0][0]);                  //提取符合要求的一个数据

                    int XinShuLiang = YuanShuLiang - Convert.ToInt32(textBox8.Text.Trim());                 //计算新数量

                    string sql2 = "update KuCunBiao set ShuLiang  ='" + XinShuLiang + "'where WuPinMingCheng='" + textBox1.Text.Trim() + "'";

                    BaseClass.UpdateData(sql2);

                }

                //自动生成编号

                string a = "select  max(LiuShuiHao) from ChuRuKuBiao";

                string LiuShuiHao = BaseClass.ShengChengBianHao(a);

                //执行向'出入库表'中录入数据

                string sql = "insert into ChuRuKuBiao(LiuShuiHao,WuPinMingCheng,GongYingShang,ShuLiang,DanWei,GuiGe,JinHuoDanJia,XiaoShouDanJia,RiQi,LeiBie,KeHuMingCheng) values('" + LiuShuiHao + "','" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() + "','-" + textBox8.Text.Trim() + "','" + textBox6.Text.Trim() + "','" + textBox3.Text.Trim() + "','0','" + textBox9.Text.Trim() + "','" + DateTime.Now.ToString() + "','出库','" + textBox4.Text.Trim() + "')";

                BaseClass.InsertData(sql);

            }

            this.Close();

        }

盘点:      

 

主要代码:

//按全部库存查询

            if (comboBox1.Text == "全部库存")

            {

                ContextMenuStrip = contextMenuStrip1;               //设置相应的右键菜单

                string sql = "select WuPinMingCheng as '物品名称',GongYingShang as '供应商',ShuLiang as '数量',DanWei as '单位',GuiGe as '规格',JinHuoDanJia as '进货单价'from KuCunBiao";

                dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];           //调用基础类中的FindData()方法实现查找功能

                textBox1.Visible = false;

                button5.Visible = false;

                label1.Visible = false;

                label2.Visible = false;

                dateTimePicker1.Visible = false;

                dateTimePicker3.Visible = false;

                button6.Visible = false;

            }

//按用户输入的品名查询

        private void textBox1_TextChanged(object sender, EventArgs e)

        {

            string sql = "select WuPinMingCheng as '物品名称',GongYingShang as '供应商',ShuLiang as '数量',DanWei as '单位',GuiGe as '规格',JinHuoDanJia as '进货单价'from KuCunBiao where WuPinMingCheng='" + textBox1.Text.Trim() + "'";

            dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];           //调用基础类中的FindData()方法实现查找功能

        }

 

        //按用户输入的时间段查询

        private void button6_Click(object sender, EventArgs e)

        {

            if (comboBox1.Text == "按时间段查询入库记录")

            {

                string sql = "select LiuShuiHao as 流水号, WuPinMingCheng as 物品名称,GongYingShang as 供应商,GuiGe as 规格,ShuLiang as 数量,JinHuoDanJia as 进货单价,XiaoShouDanJia as 销售单价,DanWei as 单位,RiQi as 日期,LeiBie as 类别,KeHuMingCheng as 客户名称 from ChuRuKuBiao where RiQi between '" + dateTimePicker1.Text.Trim() + "'and '" + dateTimePicker3.Text.Trim() + "'and LeiBie ='入库'";

                dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];           //调用基础类中的FindData()方法实现查找功能

            }

            if (comboBox1.Text == "按时间段查询出库记录")

            {

                string sql = "select LiuShuiHao as 流水号, WuPinMingCheng as 物品名称,GongYingShang as 供应商,GuiGe as 规格,ShuLiang as 数量,JinHuoDanJia as 进货单价,XiaoShouDanJia as 销售单价,DanWei as 单位,RiQi as 日期,LeiBie as 类别,KeHuMingCheng as 客户名称 from ChuRuKuBiao where RiQi between '" + dateTimePicker1.Text.Trim() + "'and '" + dateTimePicker3.Text.Trim() + "'and LeiBie ='出库'";

                dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];           //调用基础类中的FindData()方法实现查找功能

            }

        }

 

 

查询:

 
主要代码:

        private void button1_Click(object sender, EventArgs e)

        {

            if (comboBox1.Text == "")

            {

                BaseClass.Message("请输入模糊关键字查询!""警告");

            }

            else 

            {

                try

                {

                    string sql = "select LiuShuiHao as 流水号, WuPinMingCheng as 物品名称,GongYingShang as 供应商,GuiGe as 规格,ShuLiang as 数量,JinHuoDanJia as 进货单价,XiaoShouDanJia as 销售单价,DanWei as 单位,RiQi as 日期,LeiBie as 类别,KeHuMingCheng as 客户名称 from ChuRuKuBiao where WuPinMingCheng like'%" + Convert.ToString(comboBox1.Text.Trim()) + "%'or GongYingShang like'%" + Convert.ToString(comboBox1.Text.Trim()) + "%' or ShuLiang like'%" + Convert.ToString(comboBox1.Text.Trim()) + "%'or LeiBie like'%" + Convert.ToString(comboBox1.Text.Trim()) + "%'or DanWei like'%" + Convert.ToString(comboBox1.Text.Trim()) + "%'";

                    dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];           //调用基础类中的FindData()方法实现查找功能

                }

                catch 

                {

                    BaseClass.Message("查询失败!""警告");

                }

            }

        }

报表:

主要代码:

//按物品名查询

        private void button4_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")

            {

                MessageBox.Show("请输入要查询的物品信息!""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            if (radioButton1.Checked == false && radioButton2.Checked == false)

            {

                MessageBox.Show("请选择查询类型(出、入库)""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            else 

            {

                //如果选择入库查询

                if (radioButton1.Checked == true)

                {

                    SqlDataAdapter da = new SqlDataAdapter("select WuPinMingCheng,GongYingShang,GuiGe,ShuLiang,DanWei,RiQi,LeiBie from ChuRuKuBiao where WuPinMingCheng ='" + textBox1.Text.Trim() + "'and LeiBie='入库'", conn);        //提取符合要求的整行数据

                    DataSet ds = new DataSet();

                    da.Fill(ds);         //填充数据

                    int i;

                    for (i = 0; i < ds.Tables[0].Rows.Count; i++)

                    {

                        //自动生成编号

                        string a = "select  max(XuHao) from BaoBiao";

                        string XuHao = BaseClass.ShengChengBianHao(a);

                        //出入库表中录入数据

                        string sql = "insert into BaoBiao(XuHao,WuPinMingCheng,DanWei,GuiGe,ShuLiang,DanWeiLeiBie,RiQi,LeiBie) values('" + XuHao + "','" + ds.Tables[0].Rows[i][0] + "','" + ds.Tables[0].Rows[i][1] + "','" + ds.Tables[0].Rows[i][2] + "','" + ds.Tables[0].Rows[i][3] + "','" + ds.Tables[0].Rows[i][4] + "','" + ds.Tables[0].Rows[i][5] + "','" + ds.Tables[0].Rows[i][6] + "')";

                        SqlConnection con = BaseClass.DBCon();//连接数据库

                        con.Open();//打开数据库

                        SqlCommand cmd = new SqlCommand(sql, con);//创建SQL语句执行对象

                        cmd.ExecuteNonQuery();//执行SQL语句

                        conn.Close();

                    }

                    绿象库存管理系统.RuKuBaoBiao f = new 绿象库存管理系统.RuKuBaoBiao();

                    f.ShowDialog(this.Parent);

                }

                else 

                {

                    //如果选择出库查询

                    if (radioButton2.Checked == true)

                    {

                        SqlDataAdapter da = new SqlDataAdapter("select WuPinMingCheng,KeHuMingCheng,GuiGe,ShuLiang,DanWei,RiQi,LeiBie from ChuRuKuBiao where WuPinMingCheng ='" + textBox1.Text.Trim() + "'and LeiBie='出库'", conn);        //提取符合要求的整行数据

                        DataSet ds = new DataSet();

                        da.Fill(ds);         //填充数据

                        int i;

                        for (i = 0; i < ds.Tables[0].Rows.Count; i++)

                        {

                            //自动生成编号

                            string a = "select  max(XuHao) from BaoBiao";

                            string XuHao = BaseClass.ShengChengBianHao(a);

                            //出入库表中录入数据

                            string sql = "insert into BaoBiao(XuHao,WuPinMingCheng,DanWei,GuiGe,ShuLiang,DanWeiLeiBie,RiQi,LeiBie) values('" + XuHao + "','" + ds.Tables[0].Rows[i][0] + "','" + ds.Tables[0].Rows[i][1] + "','" + ds.Tables[0].Rows[i][2] + "','" + ds.Tables[0].Rows[i][3] + "','" + ds.Tables[0].Rows[i][4] + "','" + ds.Tables[0].Rows[i][5] + "','" + ds.Tables[0].Rows[i][6] + "')";

                            SqlConnection con = BaseClass.DBCon();//连接数据库

                            con.Open();//打开数据库

                            SqlCommand cmd = new SqlCommand(sql, con);//创建SQL语句执行对象

                            cmd.ExecuteNonQuery();//执行SQL语句

                            conn.Close();

                        }

                        绿象库存管理系统.ChuKuBaoBiao f = new 绿象库存管理系统.ChuKuBaoBiao();

                        f.ShowDialog(this.Parent);

                    }

                }

            }

        }

//按时间查询

        private void button43_Click(object sender, EventArgs e)

        {

            if (radioButton5.Checked == false && radioButton6.Checked == false)

            {

                MessageBox.Show("请选择查询类型(出、入库)""警告"MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }

            else

            {

                //如果选择入库查询

                if (radioButton6.Checked == true)

                {

                    SqlDataAdapter da = new SqlDataAdapter("select WuPinMingCheng,GongYingShang,GuiGe,ShuLiang,DanWei,RiQi,LeiBie from ChuRuKuBiao where RiQi between '" + dateTimePicker3.Text.Trim() + "'and '" + dateTimePicker4.Text.Trim() + "'and LeiBie ='入库'", conn);        //提取符合要求的整行数据

                    DataSet ds = new DataSet();

                    da.Fill(ds);         //填充数据

                    int i;

                    for (i = 0; i < ds.Tables[0].Rows.Count; i++)

                    {

                        //自动生成编号

                        string a = "select  max(XuHao) from BaoBiao";

                        string XuHao = BaseClass.ShengChengBianHao(a);

                        //出入库表中录入数据

                        string sql = "insert into BaoBiao(XuHao,WuPinMingCheng,DanWei,GuiGe,ShuLiang,DanWeiLeiBie,RiQi,LeiBie) values('" + XuHao + "','" + ds.Tables[0].Rows[i][0] + "','" + ds.Tables[0].Rows[i][1] + "','" + ds.Tables[0].Rows[i][2] + "','" + ds.Tables[0].Rows[i][3] + "','" + ds.Tables[0].Rows[i][4] + "','" + ds.Tables[0].Rows[i][5] + "','" + ds.Tables[0].Rows[i][6] + "')";

                        SqlConnection con = BaseClass.DBCon();//连接数据库

                        con.Open();//打开数据库

                        SqlCommand cmd = new SqlCommand(sql, con);//创建SQL语句执行对象

                        cmd.ExecuteNonQuery();//执行SQL语句

                        conn.Close();

                    }

                    绿象库存管理系统.RuKuBaoBiao f = new 绿象库存管理系统.RuKuBaoBiao();

                    f.ShowDialog(this.Parent);

                }

                else

                {

                    //如果选择出库查询

                    if (radioButton5.Checked == true)

                    {

                        SqlDataAdapter da = new SqlDataAdapter("select WuPinMingCheng,KeHuMingCheng,GuiGe,ShuLiang,DanWei,RiQi,LeiBie from ChuRuKuBiao where RiQi between '" + dateTimePicker3.Text.Trim() + "'and '" + dateTimePicker4.Text.Trim() + "'and LeiBie ='出库'", conn);        //提取符合要求的整行数据

                        DataSet ds = new DataSet();

                        da.Fill(ds);         //填充数据

                        int i;

                        for (i = 0; i < ds.Tables[0].Rows.Count; i++)

                        {

                            //自动生成编号

                            string a = "select  max(XuHao) from BaoBiao";

                            string XuHao = BaseClass.ShengChengBianHao(a);

                            //出入库表中录入数据

                            string sql = "insert into BaoBiao(XuHao,WuPinMingCheng,DanWei,GuiGe,ShuLiang,DanWeiLeiBie,RiQi,LeiBie) values('" + XuHao + "','" + ds.Tables[0].Rows[i][0] + "','" + ds.Tables[0].Rows[i][1] + "','" + ds.Tables[0].Rows[i][2] + "','" + ds.Tables[0].Rows[i][3] + "','" + ds.Tables[0].Rows[i][4] + "','" + ds.Tables[0].Rows[i][5] + "','" + ds.Tables[0].Rows[i][6] + "')";

                            SqlConnection con = BaseClass.DBCon();//连接数据库

                            con.Open();//打开数据库

                            SqlCommand cmd = new SqlCommand(sql, con);//创建SQL语句执行对象

                            cmd.ExecuteNonQuery();//执行SQL语句

                            conn.Close();

                        }

                        绿象库存管理系统.ChuKuBaoBiao f = new 绿象库存管理系统.ChuKuBaoBiao();

                        f.ShowDialog(this.Parent);

                    }

                }

            }

        }

4.7 系统维护模块

系统维护模块包括:系统日志,系统初始化,数据备份

数据备份: 

主要代码:       

 //备份

        private void button3_Click(object sender, EventArgs e)

        {

            try

            {

                //还原数据库

                string str = "use master restore database LvXiang from Disk='" + textBox1.Text.Trim() + "'";

                SqlConnection conn = BaseClass.DBCon();

                conn.Open();

                SqlCommand cmd = new SqlCommand(str, conn);

                cmd.ExecuteNonQuery();

                if (MessageBox.Show("恢复成功""提示"MessageBoxButtons.OK, MessageBoxIcon.Exclamation) == DialogResult.OK)

                {

                    this.Close();

                }

            }

            catch (Exception)

            {

                MessageBox.Show("数据库还原失败!""提示"MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

        }

 

系统日志:

主要代码:

        private void frmSystemLog_Load(object sender, EventArgs e)

        {

            string sql = "select DengLuMing as '登录名',DengLuShiJian as '登录时间',TuiChuShiJian as '退出时间' from XiTongRiZhiBiao";

            dataGridView1.DataSource = BaseClass.FindData(sql).Tables[0];               //调用基础类中的FindData()方法实现查找功能

        }

 

 

 

三.总结(心得):

    本软件采用三层架构制作,已具备基本功能(用户登录,权限管理,进货,出货,报表,查询等功能)软件运行基本无误。通过实验周的学习与制作,我从中学到许多东西,我还非常感谢同学们的帮助。

<!--EndFragment-->

猜你喜欢

转载自j120373626.iteye.com/blog/1850831