一個簡單的三層架構之倉庫管理系統的入庫出庫

一個簡單的三層架構之倉庫管理系統的入庫出庫

今天來講一下一個簡單的三層架構的程序,一個倉庫管理系統的簡單的出庫入庫操作,還有供應商的信息錄入。
首先是在sql中(access也行)中建表,建表的字段設計如下

這裏寫圖片描述
包括4個表(實際上我建的不止,後期擴展的有供應商的表格等等,很多需要後期加表),分別是,貨物屬性信息表、進貨入庫表,出貨出庫表,用戶信息表,以下詳細說明我的每個表,以下所有的表id均爲自動增加,不再說明
用戶表:一共三個字段,用戶名,用戶密碼,用戶權限
這裏寫圖片描述

進貨表:入庫編號、貨物編號、貨物名稱、供應商名稱、倉庫名稱、貨物規格、計量單位、入庫數量、入庫價格、入庫總金額、入庫日期、經手人、備註
這裏寫圖片描述
出貨表:出庫編號、倉庫名稱、貨物名稱、貨物規格、計量單位、出庫數量、出庫價格、出庫總金額、出庫日期、提貨單位、提貨人、經手人、備註
這裏寫圖片描述
貨物信息表:貨物編號、貨物名稱、倉庫名稱、貨物規格、計量單位、貨物數量、貨物入庫價格、貨物出庫價格、貨物低線存儲、貨物頂線存儲、記錄修改人、修改日期
這裏寫圖片描述
(供應商表不累加說明,自己按照之前的做就是了。很簡單。)

界面設計:(我一開始做的比較醜,簡單的功能先實現就好了)
主界面設計(多窗體(創建父窗體,子窗體等等))

這裏寫圖片描述
供應商管理界面

這裏寫圖片描述
入庫管理界面

這裏寫圖片描述
出庫管理界面

這裏寫圖片描述

類設計
這裏寫圖片描述

好嘞,下面上代碼!(記住要創建app.config文件記住配置,配置過程網上有)

 class instoremodel

    {
        public string goodsname { get; set; }
        public string prname { get; set; }
        public string storename { get; set; }
        public int goodsid { get; set; }
        public string goodsspec { get; set; }
        public string goodsunit { get; set; }
        public int goodsnum { get; set; }
        public decimal goodsprice { get; set; }
        public decimal goodsaprice { get; set; }
        public DateTime indate { get; set; }
        public string handlepeople { get; set; }
        public string inremark { get; set; }
    }







class instoredal
    {
        public int addnew(instoremodel p)
        {
            object obg = null;
            //sqlhelper h = new sqlhelper();

            obg = sqlhelper.ExecuteScalar(
                "insert into instore (goodsid,goodsname,prname,storename,goodsspec,goodsunit,goodsnum,goodsprice,goodsaprice,indate,handlepeople,remark) values" +
                "(@goodsid,@goodsname,@prname,@storename,@goodsspec,@goodsunit,@goodsnum,@goodsprice,@goodsaprice,@indate,@handlepeople,@remark);select  @@identity"
                , new System.Data.SqlClient.SqlParameter("goodsid",p.goodsid), new System.Data.SqlClient.SqlParameter("goodsname", p.goodsname)
                , new System.Data.SqlClient.SqlParameter("prname", p.prname), new System.Data.SqlClient.SqlParameter("goodsspec", p.goodsspec)

                , new System.Data.SqlClient.SqlParameter("storename", p.storename), new System.Data.SqlClient.SqlParameter("goodsunit", p.goodsunit)
                , new System.Data.SqlClient.SqlParameter("goodsnum", p.goodsnum), new System.Data.SqlClient.SqlParameter("goodsprice", p.goodsprice)

                , new System.Data.SqlClient.SqlParameter("goodsaprice", p.goodsaprice), new System.Data.SqlClient.SqlParameter("indate", p.indate)

                , new System.Data.SqlClient.SqlParameter("handlepeople", p.handlepeople), new System.Data.SqlClient.SqlParameter("remark", p.inremark)
                );
            return Convert.ToInt32(obg);
        }
        public int delect(int goodsid)
        {
            return sqlhelper.ExecuteNonQuery("delete from instore where inid=@inid", new System.Data.SqlClient.SqlParameter("inid", goodsid));
        }
        public int update(instoremodel p)
        {
            return sqlhelper.ExecuteNonQuery("update instore set goodsid=@goodsid,goodsname=@goodsname,prname=@prname," +
                "storename=@storename,goodsspec=@goodsspec,goodsunit=@goodsunit,goodsnum=@goodsnum,goodsprice=goodsprice," +
                "goodsaprice=@goodsaprice,indate=@indate,handlepeople=@handlepeople,remark=@remark" +
                " where goodsid=@goodsid"
                , new System.Data.SqlClient.SqlParameter("goodsid", p.goodsid), new System.Data.SqlClient.SqlParameter("goodsname", p.goodsname)
                , new System.Data.SqlClient.SqlParameter("prname", p.prname), new System.Data.SqlClient.SqlParameter("goodsspec", p.goodsspec)

                , new System.Data.SqlClient.SqlParameter("storename", p.storename), new System.Data.SqlClient.SqlParameter("goodsunit", p.goodsunit)
                , new System.Data.SqlClient.SqlParameter("goodsnum", p.goodsnum), new System.Data.SqlClient.SqlParameter("goodsprice", p.goodsprice)

                , new System.Data.SqlClient.SqlParameter("goodsaprice", p.goodsaprice), new System.Data.SqlClient.SqlParameter("indate", p.indate)

                , new System.Data.SqlClient.SqlParameter("handlepeople", p.handlepeople), new System.Data.SqlClient.SqlParameter("remark", p.inremark)
               );

        }
        public instoremodel get(int goodsid)
        {
            DataTable data = sqlhelper.ExecuteDataTable("select * from instore where goodsid=@goodsid", new System.Data.SqlClient.SqlParameter
                ("goodsid", goodsid));
            if (data.Rows.Count <= 0)
                return null;
            else if (data.Rows.Count == 1)
            {
                instoremodel result = new instoremodel();
                DataRow r = data.Rows[0];
                result.goodsid = (int )r["goodsid"];
                result.goodsaprice = (decimal)r["goodsaprice"];
                result.goodsname = (string)r["goodsname"];
                result.goodsnum = (int )r["goodsnum"];
                result.goodsprice = (decimal)r["goodsprice"];

                result.goodsspec = (string)r["goodsspec"];
                result.goodsunit = (string)r["goodsunit"];
                result.handlepeople= (string)r["handlepeople"];
                result.indate = (DateTime)r["indate"];
                result.inremark= (string)r["remark"];
                result.prname= (string)r["prname"];
                result.storename = (string)r["storename"];

                return result;
            }
            else
                throw new Exception("出現多條數據!");


        }
        public DataTable get()
        {
            DataTable dt = sqlhelper.ExecuteDataTable("select inid as '入庫編號',goodsid as '貨物編號',goodsname as '貨物名稱',prname as '供應商',storename as '倉庫名稱'," +
                "goodsspec as '貨物規格',goodsunit as '計量單位',goodsnum as '貨物數量',goodsprice as '貨物價格',goodsaprice" +
                " as '貨物總價格' ,indate as '入庫時間',handlepeople as '經手人',remark as '備註' from instore");
            return dt;
        }

    }
 class outstore
    {
        public string storename { get; set; }
        public string goodsname { get; set; }
        public string goodsspec { get; set; }
        public string goodsunit { get; set; }
        public int goodsnum { get; set; }
        public decimal goodsprice { get; set; }
        public decimal goodsaprice { get; set; }
        public DateTime outdate { get; set; }
        public string pgprovider { get; set; }
        public string pgpeople { get; set; }
        public string handlepeople { get; set; }
        public string remark { get; set; }
    }

 public int addnew(outstore p)
        {
            object obg = null;
            //sqlhelper h = new sqlhelper();

            obg = sqlhelper.ExecuteScalar(
                "insert into outstore (goodsname,pgprovider,pgpeople,storename,goodsspec,goodsunit,goodsnum,goodsprice,goodsaprice,outdate,handlepeople,remark) values" +
                "(@pgpeople,@goodsname,@pgprovider,@storename,@goodsspec,@goodsunit,@goodsnum,@goodsprice,@goodsaprice,@outdate,@handlepeople,@remark);select  @@identity"
                , new System.Data.SqlClient.SqlParameter("pgpeople", p.pgpeople), new System.Data.SqlClient.SqlParameter("goodsname", p.goodsname)
                , new System.Data.SqlClient.SqlParameter("pgprovider", p.pgprovider), new System.Data.SqlClient.SqlParameter("goodsspec", p.goodsspec)

                , new System.Data.SqlClient.SqlParameter("storename", p.storename), new System.Data.SqlClient.SqlParameter("goodsunit", p.goodsunit)
                , new System.Data.SqlClient.SqlParameter("goodsnum", p.goodsnum), new System.Data.SqlClient.SqlParameter("goodsprice", p.goodsprice)

                , new System.Data.SqlClient.SqlParameter("goodsaprice", p.goodsaprice), new System.Data.SqlClient.SqlParameter("outdate", p.outdate)

                , new System.Data.SqlClient.SqlParameter("handlepeople", p.handlepeople), new System.Data.SqlClient.SqlParameter("remark", p.remark)
                );
            return Convert.ToInt32(obg);
        }
        public int delect(int goodsid)
        {
            return sqlhelper.ExecuteNonQuery("delete from outstore where outid=@outid", new System.Data.SqlClient.SqlParameter("outid", goodsid));
        }
        public int update(outstore p)
        {
            return sqlhelper.ExecuteNonQuery("update instore set pgprovider=@pgprovider,goodsname=@goodsname,pgpeople=@pgpeople," +
                "storename=@storename,goodsspec=@goodsspec,goodsunit=@goodsunit,goodsnum=@goodsnum,goodsprice=goodsprice," +
                "goodsaprice=@goodsaprice,outdate=@outdate,handlepeople=@handlepeople,remark=@remark" +
                " where goodsid=@goodsid"
                , new System.Data.SqlClient.SqlParameter("pgprovider", p.pgprovider), new System.Data.SqlClient.SqlParameter("goodsname", p.goodsname)
                , new System.Data.SqlClient.SqlParameter("pgpeople", p.pgpeople), new System.Data.SqlClient.SqlParameter("goodsspec", p.goodsspec)

                , new System.Data.SqlClient.SqlParameter("storename", p.storename), new System.Data.SqlClient.SqlParameter("goodsunit", p.goodsunit)
                , new System.Data.SqlClient.SqlParameter("goodsnum", p.goodsnum), new System.Data.SqlClient.SqlParameter("goodsprice", p.goodsprice)

                , new System.Data.SqlClient.SqlParameter("goodsaprice", p.goodsaprice), new System.Data.SqlClient.SqlParameter("outdate", p.outdate)

                , new System.Data.SqlClient.SqlParameter("handlepeople", p.handlepeople), new System.Data.SqlClient.SqlParameter("remark", p.remark)
               );

        }
        public outstore get(int outid)
        {
            DataTable data = sqlhelper.ExecuteDataTable("select * from outstore where outid=@outid", new System.Data.SqlClient.SqlParameter
                ("outid", outid));
            if (data.Rows.Count <= 0)
                return null;
            else if (data.Rows.Count == 1)
            {
                outstore result = new outstore();
                DataRow r = data.Rows[0];
                result.pgprovider = (string)r["pgprovider"];
                result.goodsaprice = (decimal)r["goodsaprice"];
                result.goodsname = (string)r["goodsname"];
                result.goodsnum = (int)r["goodsnum"];
                result.goodsprice = (decimal)r["goodsprice"];

                result.goodsspec = (string)r["goodsspec"];
                result.goodsunit = (string)r["goodsunit"];
                result.handlepeople = (string)r["handlepeople"];
                result.outdate = (DateTime)r["outdate"];
                result.remark = (string)r["remark"];
                result.pgpeople = (string)r["pgpeople"];
                result.storename = (string)r["storename"];

                return result;
            }
            else
                throw new Exception("出現多條數據!");


        }
        public DataTable get()
        {
            DataTable dt = sqlhelper.ExecuteDataTable("select outid as '出庫編號',pgprovider as '提貨單位',goodsname as '貨物名稱',pgpeople as '提貨人',storename as '倉庫名稱'," +
                "goodsspec as '貨物規格',goodsunit as '計量單位',goodsnum as '貨物數量',goodsprice as '貨物價格',goodsaprice" +
                " as '貨物總價格' ,outdate as '出庫時間',handlepeople as '經手人',remark as '備註' from outstore");
            return dt;
        }
    }
 class provider
    {
        public string providername { get; set; }
        public string phone { get; set; }
        public string manager { get; set; }
        public string remark { get; set; }
        public int providerid { get; set; }
    }

class providerdal
    {
        public int addnew(provider p)
        {
            object obg = null;
            //sqlhelper h = new sqlhelper();

            obg = sqlhelper.ExecuteScalar(
                "insert into goodsprovider (providername,manager,phone,remark) values(@providername,@manager,@phone,@remark);select  @@identity"
                , new System.Data.SqlClient.SqlParameter("providername", p.providername), new System.Data.SqlClient.SqlParameter("manager", p.manager)
                , new System.Data.SqlClient.SqlParameter("phone", p.phone), new System.Data.SqlClient.SqlParameter("remark", p.remark)
                );
            return Convert.ToInt32(obg);
        }
        public int delect(string providername)
        {
            return sqlhelper.ExecuteNonQuery("delete from goodsprovider where providername=@providername", new System.Data.SqlClient.SqlParameter("providername", providername));
        }
        public int update(provider p)
        {
            return sqlhelper.ExecuteNonQuery("update users set providername=@providername ,manager=@manager ,phone=@phone,remark=@remark,providerid=@providerid" +
                " where providerid=@providerid",
                new System.Data.SqlClient.SqlParameter("providername", p.providername), new System.Data.SqlClient.SqlParameter("manager", p.manager)
                , new System.Data.SqlClient.SqlParameter("phone", p.phone)
                , new System.Data.SqlClient.SqlParameter("remark", p.remark)
                , new System.Data.SqlClient.SqlParameter("providerid", p.providerid)
               );

        }
        public provider get(string providername)
        {
            DataTable data = sqlhelper.ExecuteDataTable("select * from users where providername=@providername", new System.Data.SqlClient.SqlParameter("providername", providername));
            if (data.Rows.Count <= 0)
                return null;
            else if (data.Rows.Count == 1)
            {
                provider result = new provider();
                DataRow r = data.Rows[0];
                result.providername = (string)r["providername"];
                result.manager = (string)r["manager"];
                result.phone = (string)r["phone"];
                result.remark = (string)r["remark"];
                result.providerid = (Int32)r["providerid"];
                return result;
            }
            else
                throw new Exception("出現多條數據!");


        }
        public DataTable get()
        {
            DataTable dt = sqlhelper.ExecuteDataTable("select providername as '供應商名稱' ,manager as'負責人' ,phone as'電話',remark as'備註' from goodsprovider");
            return dt;
        }

    }
 class sqlhelper
    {
        private static readonly string connstr= ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
        public static int ExecuteNonQuery(string cmdText,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = cmdText;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        public static object ExecuteScalar(string cmdText,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = cmdText;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteScalar();
                }
            }
        }

        public static DataTable ExecuteDataTable(string cmdText,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = cmdText;
                    cmd.Parameters.AddRange(parameters);
                    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        adapter.Fill(dt);
                        return dt;
                    }
                }
            }
        }

        public static SqlDataReader ExecuteDataReader(string cmdText,
            params SqlParameter[] parameters)
        {
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();
            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = cmdText;
                cmd.Parameters.AddRange(parameters);
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
        }

    }

下面爲運行截圖(運行的名字瞎想的)
供應商管理
供應商管理
供應商管理
入庫
入庫
入庫
出庫
出庫
出庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章