VB.net学习(一):三层架构初体验

首先感慨一下,自己从新手小白开始学习真是难上加难!
看了几天诸多大佬关于三层架构的讲解以及示例代码,今天终于有机会上手亲自敲码。事实证明,看是永远看不会的。话不多说,记录下今天学习中遇到的问题以及我自己的解决办法,如有更好的解决办法和解释,望不吝指教。

今天学习了王洪玉的 三层架构实现登录——VB.NET版,按照示例亲自敲码试验,由于是小白过程中出现几个疑问和问题(示例使用的是连接SQL数据库,我用的是Access数据库)。
一、连接数据库字符串所在的模块(module)是哪个层下的,DAL还是UI?同时Access数据库文件要建在哪一层的文件夹下?还有获取数据库的文件路径?

经过多次试验,我将Access数据库文件放到UI层的\bin\debug文件夹下,连接数据库的字符串存在了DAL层,也就是在DAL层下建了个module模块存入连接数据库字符串。获取数据库文件的路径我使用了“Provider=MicroSoft.Jet.Oledb.4.0;Data Source=|DataDirectory|\***.mdb”。期间出现一些小问题,我建立的Access数据库是office2017版本的(.accdb),而我连接字符串中写的是03版本的(.mdb),调试时出现了找不到数据库文件的错误。将字符串中的.mdb改为.accdb后出现了不可以识别数据库类型的错误,经百度应将“MicroSoft.Jet.Oledb.4.0”改为“MicroSoft.ACE.Oledb.12.0”,修改之后仍然出现错误“未在本地计算机注册 MicroSoft.ACE.Oledb.12.0”,崩溃。最后索性重新建了个03版本的数据库,调试,成功!
二、完全按示例代码敲码之后程序出现两处错误
    其一,出现“未将对象引用设置到对象的实例”,经调试在B层中少了New关键字(红色标记处)
Dim user1 As New Model.UserInfo              '定义一个类型为实体层的参数,用于赋值


    其二,出现“参数@username没有默认值“的错误,我的处理方式为在U层加入两行代码 (红色标记处)
 
  
Try Dim user As New Model.UserInfo '调用B层,传递U层数据,进行登录判断
             user.UserName = username
            user.PassWord = password user = mgr.UserLogin(user) Catch ex As Exception

你可能感兴趣的:(VB.net学习(一):三层架构初体验)