【C#实训】项目总结

C#实训结束!

这次给我们上课的老师是不再是学校自己的老师,而是公司里的人,所以给我们讲了很多很具使用性的小东西,小提示,比如 改点代码就要按Ctrl+S保存多做备份 等等,在生活中很实用。
很开心坐在老师的对面,也从头到尾完完整整的听了课,理解了三层架构,
下面是我做的一个三层架构的示意图

在这里插入图片描述这是我给组员讲解的示意图-。-

其次,很多时候都是运用控件的属性来实现的,比如
怎么让Button按钮隐藏,让它的Visible改为false:
button1.Visible = false;
怎么让Button按钮灰掉,不可选,把它的Enabled改为true就好:
button1.Enable = true;

很神奇,而且大部分属性对于控件来说都是通用的!

我们的项目是利用三层架构,做一个 图书信息管理系统
要求:

图书信息和借阅人信息的精确查询模糊查询,新增,修改和删除
管理员账号的查询,
图书的借阅和归还

就像这样的:
图书信息管理系统

完成步骤

1.搭建数据库

首先根据需求设计数据库,粗略分析用什么数据类型可以,下面是我对这个信息系统数据库的设计

1.1管理员信息表
在这里插入图片描述
1.2 借阅人信息表
在这里插入图片描述
1.3 图书信息表
在这里插入图片描述
1.4 图书借阅表
在这里插入图片描述以上就是数据库的设计,接下来就在数据库中创建数据库,创建表了
完成如下:
在这里插入图片描述

2.创建Model类库

Model就是模型,每个表对应有一个Model类,里面的属性是和列名一一对应的,这里建议!!! 属性名要和列名一致!!! 别问我怎么知道的,不然会很麻烦!
完成的样子基本如下:
在这里插入图片描述
PS:表的个数=Model类个数=DAL类个数=BLL类个数

3.创建执行语句的Common类库

微软应该有执行SQL语句的类库,我这里是复制粘贴的老师的类
在这里插入图片描述

4.创建生成SQL查询语句的DAL类库

为每一种DAL都创建的自己DAL类
如下:
在这里插入图片描述

5.创建处理业务逻辑的BLL类库

为每一种表都创建自己的BLL类
如下:
在这里插入图片描述
至此!大体框架已经搭建完毕!剩下的就是UI层去调用BLL了!

6.绘制UI界面及编写事件

在这里插入图片描述

项目完毕!效果截图

在这里插入图片描述

在这里插入图片描述

PS:

注意命名规范!
注意命名规范!
注意命名规范!

重要的事情说三遍,命名要显而易见

比如窗口的命名:
登录窗口:frmLogin
主窗口:frmMain
frm代表form窗口,后面代表功能
比如按钮的命名:
查询按钮:btnQuery
保存按钮:btnSave
btn代表button按钮,后面代表功能

这样就很舒服了嘛

总结:三层框架

交上去的实训感想:

实训感想

经过这次C#实训,我收获了很多,一方面学习到了三层架构,另一方面提高了自己动手做项目的能力。本次实训,是对我能力的进一步锻炼,也是一种考验。

首先,我很庆幸,能做在老师的附近,然后认真听以前从没接触过的三层架构,刚开始的时候觉得好麻烦,就写一个项目为什么要分这么详细,但是到最后就明白了其中的逻辑,分开写更有逻辑,分层的逻辑更加明确,UI层只处理界面上的数据,BLL层将UI数据转换为DB数据,DAL层就把接受来的数据转换为SQL查询语句,然后调用Common处理SQL查询语句,Model层作为中间的传递媒介,逻辑分明,分工明确,UI层不能直接接触到真正数据,具有很强的安全性,

项目刚开始时,我分工的时候没有考虑完全,并没有按照老师的分工,给组员们分了较少的内容,而我自己负责底层框架的搭建,这也为项目推进过程中发生的一些错误埋下了伏笔。

项目过程中,经常会出现错误,有时找一个错误就要找好几十分钟,不过随着时间的推移,解决问题的速度也在变快,考虑的也在更加全面,挺有趣的。但是组员问我问题的时候我直接给他们的BUG修好了,并没有告诉他们为什么要这么改,而我也只是演示了一下,稍微说了一下改哪里,没有考虑到他们有没有听懂,这也为最后的答辩发挥不好又埋下了伏笔。

项目的结尾,答辩开始前,只有部分组员来自发的找我问问题,而另外部分组员我只是稍微问了一下,因为我觉的他负责的界面可能没啥问题,其实归根结底,我没有把解决组员的问题重视起来,没有考虑全面,如果重视了,考虑全面了,那么我会首先一对一的把每个组员的问题都解决了,然后再去答辩,这算是一个BUG吧,但是人生没法调试,出BUG就只能BUG了。。。不能重来,太惨了。。。

总而言之,对于项目来说,我收获了三层架构,明白了C#是事件所驱动的。对于个人来说,做事要考虑全面。


回过头看来,项目总结很好,但就是少了点代码人的精髓所在,那就是 代码。下面是整个项目代码的百度云链接,有需要的小伙伴可以下载哦~

链接:https://pan.baidu.com/s/1MThSL18Kl1-LgjzNnAcBtg
提取码:al5t

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
总结: 1、关于C#的知识 (1)、文件输入输出—数据流 1、FileStream类 例子: SqlDataReader reader = job.WriteFileToTxt(); FileStream jobStream = new FileStream(@fileName,FileMode.Open,FileAccess.ReadWrite);//覆盖 //FileStream jobStream = new FileStream(@fileName, FileMode.Append, FileAccess.Write);//追加 StreamWriter streamw = new StreamWriter(jobStream); string outfiles = null; streamw.WriteLine("此次任务信息如下:"); streamw.WriteLine("outfiles");//读取完毕后换行 reader.Close(); streamw.Close(); jobStream.Close(); 数据流一定要用try/catch语句块包起来,同时,例子中的fileName是文件路径,如果是*.txt之类的则默认存储在程序 的文件夹下 FileMode有很多枚举成员,其中 1)Append是打开现有文件或者创建新文件,其只能和FileAccess.Write一起使用; 2)Create是如果文件不存在,则使用CreateNew,否则使用Truncate,其要求FileIOPermissionAccess.Write; 3)CreateNew创建新文件,要求FileIOPermissionAccess.Write,如果文件存在则异常; 4)Open打开现有文件,能力取决于FileAccess的值(Read,Write,ReadWrite),如果文件存在则异常; 5)OpenOrCreate打开或创建,FileAccess.Read--FileIOPermissionAccess.Read,FileAccess.Write/ReadWrite-- FileIOPermissionAccess.Write,FileAccess.Append--FileIOPermissionAccess.Append; 6)Truncate打开现有文件,文件一旦打开将被截断为零字节,试图从使用Truncate打开的文件中进行读取将异常 注:SqlDataReader使用后一定要关闭 2、写文本文件 string text = Console.ReadLine(); StreamWriter streamw = File.CreateText(@"E:\test3.txt"); streamw.WriteLine(text); streamw.Close(); 读取文本文件 string txt = ""; StreamReader sr = new StreamReader(@"E:\test.txt"); while (!sr.EndOfStream) { string str = sr.ReadLine(); txt += str + "\n"; } sr.Close(); Console.Write(txt); Console.Read(); (2)、产品的框架 1)Model类:对象层,制定对象的属性和方法; 2)IDAL类:接口层,定义在SQLDAL中需要使用的方法; 3)SQLDAL类:数据持久层,实现接口中的方法,用DBUtility类中包装的SQL方法操作数据库; 4)BLL类:业务逻辑层,定义调用SQLDAL类中的方法,被WEB类中的事件调用,联系数据持久层和WEB表示层,中间桥梁 ; 5)DALFactory类:创建接口类型的CREATE方法,在SQLDAL中创建接口对象; 6)DBUtility类:创建各种SQL方法,实现数据的调用; 7)WEB类:表示层,设计页面格式(HTML)和实现各种事件(JavaScript) (3)c#中执行sql语句时传递参数的小经验 1> 直接写入法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')"; 因为Id是数值,所以在传递的时候只需要在sql字符串中用"+Id+"即可实现,而Name是字符串,所以在传递的时候还需 要在"+Name+"两边各加一个单引号(')来 实现; 2>给命令对象添加参数法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values(@Id,@Name)"; //上条语句中直接在sql语句中写添加的参数名,不论参数类型都是如此. SqlParameter para=new SqlParameter("@Id",SqlDbType.int,4);//生成一个名字为@Id的参数,必须以@开头表 示是添加的参数,并设置其类型长度,类型长度与数据库中对应字段相同 para.Value=Id;//给参数赋值 cmd.Parameters.Add(para);//必须把参数变量添加到命令对象中去。 //以下类似 para=new SqlParameter("@Name",SqlDbType.VarChar,16); para.Value=Name; com.Parameters.Add(para); 然后就可以执行数据库操作了。
当涉及到C#与Halcon的联合项目时,你可能会遇到一些挑战,但也有一些方法可以帮助你成功完成任务。以下是一些关键步骤和建议: 1. 安装Halcon库:首先,确保你已经安装了Halcon图像处理库,并且配置了正确的环境变量。这样才能在你的C#项目中调用Halcon的功能。 2. 集成Halcon库:在C#项目中,你需要将Halcon库集成到你的代码中。有几种方法可以实现这一点,其中最常见的是通过使用Halcon提供的.NET接口(HDevEngine)来实现。这个接口允许你直接在C#代码中调用Halcon的功能。 3. 学习Halcon的API:了解Halcon的API和使用方法非常重要。你可以参考Halcon的官方文档和示例代码来学习如何使用Halcon库进行图像处理和分析。通过了解API,你可以利用Halcon的强大功能来解决你的问题。 4. 编写C#代码:在C#项目中,你可以使用HDevEngine接口来调用Halcon的功能。通过编写C#代码,你可以实现从摄像头获取图像、进行图像处理、分析和显示结果等操作。 5. 调试和测试:尽早进行调试和测试是很重要的。确保你的代码能够正确地调用Halcon的功能,并且按照预期执行图像处理和分析任务。通过不断调试和测试,你可以及时发现和解决潜在的问题。 总结起来,C#与Halcon的联合项目需要你熟悉Halcon的API和使用方法,并且能够将Halcon库集成到你的C#代码中。通过合理的编写和调试,你可以实现基于Halcon的图像处理和分析任务。希望这些步骤和建议能对你有所帮助!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值