一個簡單的三層架構之倉庫管理系統的入庫出庫
今天來講一下一個簡單的三層架構的程序,一個倉庫管理系統的簡單的出庫入庫操作,還有供應商的信息錄入。
首先是在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);
}
}
}
下面爲運行截圖(運行的名字瞎想的)
供應商管理
入庫
出庫