c#简单的三层架构遇到难题了!菜鸟跪求各位大神帮助!

Ms小梁 2012-12-01 01:27:33
用vs2005 和SQL2005 开发程序的时候遇到难题了!请各位大仙帮帮小弟的忙。不知道进货,销售和库存三者的代码怎么写。
这个是销售的界面。不知道如何写。这个是进货的界面、怎么样才能让当进货表保存的时候库存里边也相应的增加。销售的时候库存里边也相应的减少、各位帮帮忙吧。很急的。 坐等回复!
...全文
588 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ms小梁 2013-05-08
  • 打赏
  • 举报
回复
引用 21 楼 billdavis 的回复:
大家都帮助一下别人嘛,别总盛气凌人的样子,他明细是新手,更需要帮助,不是伸手党就行。来来来,我给你贴一点儿代码,共同进步。 刚开始学编程,不要怕麻烦,要多写多思考,不用一上来就照办书本上面向对象什么的,先写出能运行的,哪怕代码丑陋,今后再改就行了。然后你今后会发现为什么书上写的是对的,然后就提高了。 首先说你的界面没有“库存”的概念,我猜测是还有一个“库存”界面,按照你的思路,应该是录入“进货”后,库存增加,这个界面就有一点点儿问题了,你进货是直接在dataGridView上编辑吗?如果是,应该是如下代码: private void button1_Click(object sender, EventArgs e) { string 药品名称; int 药品编号; decimal 销售单价; decimal 进货单价; int 进货数量; string 供应商; for (int i = 0; i < dataGridView1.Rows.Count; i++) //循环整个dataGridView表 { if (!dataGridView1.Rows[i].IsNewRow) //如果是新行 { 药品编号 = Convert.ToInt32(dataGridView1.Rows[i].Cells["药品编号"].Value.ToString()); if (dataGridView1.Rows[i].Cells["销售单价"].Value == null) 销售单价 = 0; else 销售单价 = Convert.ToDecimal(dataGridView1.Rows[i].Cells["销售单价"].Value.ToString()); if (dataGridView1.Rows[i].Cells["进货单价"].Value == null) 进货单价 = 0; else 进货单价 = Convert.ToDecimal(dataGridView1.Rows[i].Cells["进货单价"].Value.ToString()); 进货数量 = Convert.ToInt32(dataGridView1.Rows[i].Cells["进货数量"].Value.ToString()); if (dataGridView1.Rows[i].Cells["药品名称"].Value == null) 药品名称 = ""; else 药品名称 =dataGridView1.Rows[i].Cells["药品名称"].Value.ToString(); dal.提交(药品编号, 药品名称, 进货数量 ,销售单价, 进货单价, 供应商); //这个是数据库访问层,你可以自行实现, //这样代码结果好,记住,一个子程序只完成一个任务。 } } MessageBox.Show("进货手续完成", "进货", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.Close(); } dal是一个对象,就是DAL(数据库访问层),由DAL去接触数据库。你要自己实现了。或者简单点儿,你可以把这个调用直接写出SQL语句来。 我的代码比较丑陋,纯面向过程的,还没有添加异常检测呢,希望大家批评指正,不过应该对楼主有点儿启发吧。这些是入门必经之路,将来再写什么面向对象的,三层架构的,MVC结构的,MVP结构的。 对了,建议楼主初学的时候最好不要用Visual Studio 的自动功能,那些自动化的RAD功能好是好,比如编辑表之类的,那样他会自动生成代码,不过容易让初学者不知其所以然,你不知道代码是什么,应该手动连接SQLserver,手动编写SQL语句。这样你能掌控全局,今后再用RAD就能掌控了。 不知道楼主还有什么需求,直接提出来,大家帮助你。 对了,希望你购买些书籍看看,书籍这个阶梯一定不能丢,有些问题多看看书,希望能够共同进步。
谢谢了,已经过去一年了,现在这些代码对我来说也是小意思了。 谢谢你们的鼓励。
lyq027 2013-01-31
  • 打赏
  • 举报
回复
支持菜鸟,老鸟也是从菜鸟进化来的。就算看过会计前面几章又如何?每家公司业务都不一样,看过前面几章的会计课本,就能做出合适本企业的进销存来?人家只是个学生,也才大一,为什么要以专业去要求人家呢?退一万步讲,就算人家学习不好,毕业了还做这种东西,那又如何?能上来这边问,至少有个肯学习的态度,N年后说不定人家也很有作为。不要看不起菜鸟,那只是因为你比人家早出生几年罢了。如果觉得自已厉害,请与自已同龄的相比较。
wsbad 2013-01-31
  • 打赏
  • 举报
回复
界面是差了一点
qdu123 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
这个是进货的界面?晕! 不是弄个垃圾的“增删改查”就当作业务界面的。最为关键地,你设计的界面可以一眼就看出是进货用的,那才叫做界面设计。 软件设计中最怕的就是弄个千篇一律的“增删改查”界面当作业务界面的那种开发人员。假设让你自己掏5000块钱给一位专业设计人员去设计软件界面,结果她弄了一个这个界面就来要5000块钱,你给么?而一个程序员弄了这种界面,就把软件公……
这个界面确实比较雷人,LZ还需要买点书看看
  • 打赏
  • 举报
回复
进货就是更新数据(update)销售就是减少数据(delete),库存就是(进货——销售)(update) 有就这三个方法就行,你在相应的按钮点击事件里调用这三个方法就行。
gyzsky 2013-01-31
  • 打赏
  • 举报
回复
呵呵,鼓励新人,只要有学习的态度就行!
wanghui0380 2013-01-26
  • 打赏
  • 举报
回复
@21楼;这玩意和代码关系不大,主要是看你有木有基础会计业务知识。 至于老p说的那些话,只是说作为一个企业级应用程序员,很多玩意并不是技术问题。很多东西是非IT的知识储备和实际业务分析,就拿这个问题来说,就算你木有会计学知识储备,也要先去问问人家专业会计在实际业务里怎么去做这东西
billdavis 2013-01-26
  • 打赏
  • 举报
回复
大家都帮助一下别人嘛,别总盛气凌人的样子,他明细是新手,更需要帮助,不是伸手党就行。来来来,我给你贴一点儿代码,共同进步。 刚开始学编程,不要怕麻烦,要多写多思考,不用一上来就照办书本上面向对象什么的,先写出能运行的,哪怕代码丑陋,今后再改就行了。然后你今后会发现为什么书上写的是对的,然后就提高了。 首先说你的界面没有“库存”的概念,我猜测是还有一个“库存”界面,按照你的思路,应该是录入“进货”后,库存增加,这个界面就有一点点儿问题了,你进货是直接在dataGridView上编辑吗?如果是,应该是如下代码: private void button1_Click(object sender, EventArgs e) { string 药品名称; int 药品编号; decimal 销售单价; decimal 进货单价; int 进货数量; string 供应商; for (int i = 0; i < dataGridView1.Rows.Count; i++) //循环整个dataGridView表 { if (!dataGridView1.Rows[i].IsNewRow) //如果是新行 { 药品编号 = Convert.ToInt32(dataGridView1.Rows[i].Cells["药品编号"].Value.ToString()); if (dataGridView1.Rows[i].Cells["销售单价"].Value == null) 销售单价 = 0; else 销售单价 = Convert.ToDecimal(dataGridView1.Rows[i].Cells["销售单价"].Value.ToString()); if (dataGridView1.Rows[i].Cells["进货单价"].Value == null) 进货单价 = 0; else 进货单价 = Convert.ToDecimal(dataGridView1.Rows[i].Cells["进货单价"].Value.ToString()); 进货数量 = Convert.ToInt32(dataGridView1.Rows[i].Cells["进货数量"].Value.ToString()); if (dataGridView1.Rows[i].Cells["药品名称"].Value == null) 药品名称 = ""; else 药品名称 =dataGridView1.Rows[i].Cells["药品名称"].Value.ToString(); dal.提交(药品编号, 药品名称, 进货数量 ,销售单价, 进货单价, 供应商); //这个是数据库访问层,你可以自行实现, //这样代码结果好,记住,一个子程序只完成一个任务。 } } MessageBox.Show("进货手续完成", "进货", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.Close(); } dal是一个对象,就是DAL(数据库访问层),由DAL去接触数据库。你要自己实现了。或者简单点儿,你可以把这个调用直接写出SQL语句来。 我的代码比较丑陋,纯面向过程的,还没有添加异常检测呢,希望大家批评指正,不过应该对楼主有点儿启发吧。这些是入门必经之路,将来再写什么面向对象的,三层架构的,MVC结构的,MVP结构的。 对了,建议楼主初学的时候最好不要用Visual Studio 的自动功能,那些自动化的RAD功能好是好,比如编辑表之类的,那样他会自动生成代码,不过容易让初学者不知其所以然,你不知道代码是什么,应该手动连接SQLserver,手动编写SQL语句。这样你能掌控全局,今后再用RAD就能掌控了。 不知道楼主还有什么需求,直接提出来,大家帮助你。 对了,希望你购买些书籍看看,书籍这个阶梯一定不能丢,有些问题多看看书,希望能够共同进步。
tianruanzg 2013-01-25
  • 打赏
  • 举报
回复
这个问题跟架构没有关系吧?
星火燎猿 2013-01-25
  • 打赏
  • 举报
回复
DSIOF3KIDSKTR 2013-01-25
  • 打赏
  • 举报
回复
引用 8 楼 yp136 的回复:
引用 5 楼 liangfanglei 的回复:我今年刚接触者东西呀,现在才读大一。你以为能和你比吗? 那你觉得你大几了就可以和别人比呢? 拿大一作为借口,我敢肯定你大一这一年真正把时间用在动手编程上面没有几天
人家大一才多久,干嘛以老鸟的眼光要求新人呢,想想你刚进在大一在干嘛?估计充其量是在用turbo c敲个hello world之类的吧,就在大学要毕业的时候多少人也只是弄一个很丑陋增删改的小程序,还有不少人弄不好呢,作为新人能弄或者说已经开始着手弄这样一个进销存程序,应当是给鼓励的
bookc-man 2013-01-24
  • 打赏
  • 举报
回复
三层架构的实例 http://download.csdn.net/detail/zj735539703/5026040
bookc-man 2013-01-24
  • 打赏
  • 举报
回复
执行SQL insert和delete语句,我做过相关的东西 望能帮助到楼主 http://download.csdn.net/detail/zj735539703/4990679
oiuyt89561 2013-01-24
  • 打赏
  • 举报
回复
就是sql语句。
dhy3610 2013-01-24
  • 打赏
  • 举报
回复
做软件之前你首先要知道软件的业务流程吧
Csharp_琪 2013-01-23
  • 打赏
  • 举报
回复
你这是要我们给你写具体功能代码?有人M你了没有
  • 打赏
  • 举报
回复
竟然是坟贴,不知道楼主现在解决问题了没有?
丿弗朗西斯 2013-01-23
  • 打赏
  • 举报
回复
UI真不敢恭维……
zhanglong19891129 2013-01-23
  • 打赏
  • 举报
回复
这个就是在你操作的时候,重新刷新下界面就得了。。。
yp136 2013-01-23
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
学点财务,例如理解会计分录、登记记账凭证、过账操作、打印总分类账等知识,那个是入门。 当然对于一些编程人员一点不懂业务,也不学,我也没有办法。
估计也就是大一课程老师留的练习题目···so,你想多了,呵呵
加载更多回复(7)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧