.NET版三层登录问题集锦

来源:互联网 发布:程序员专业名词 编辑:程序博客网 时间:2024/05/29 18:44

       .Net版的三层登录敲完了,让我们把问题总结一下吧……

    问题1、

                     

       想大家看见这个错误就应该能想到是在数据库连接的地方出现的。都怪我太粗心,明明应该是server,却写成了 sever。

       但是为什么在写代码的时候没有报错呢?原因就是sqlconnection是一个打开sql sever的数据库连接,连接数据库的语句是以字符串的形式写出来的,字符串就是你写的时候是什么样就是什么样,没有错。但是当执行到的时候就会觉得不对,然后报错。


问题2、

                        


          这个问题是数据类型转换时发生的。

         下面是我们的sql语句:


        如图,我们的数据库中的ID是int类型,Username和password是varchar类型,当用户输入的用户名和密码与数据库中的内容进行对比时,由于类型转换不过来,所以会报错。

        解决方法:我们可以在select语句中只选择我们要用户名和密码两项内容,这样就避免了ID去进行数据转换,也可以将数据库中的ID数据类型变了,这样也可以避免数据转换时出现问题。




问题3、

                       

          错误的产生原因在这!



       看图片中的提示,刚开始不知道怎么修改,只是觉得这个变量怎么会可能为空值呢?然后我就查了一下出现这个问题的原因:http://blog.csdn.net/sollion/article/details/5777475

       这个问题可能由那么多原因引起,我就凌乱了……然后就问了张峰,张峰让在AS后面加一个New试试……这样就可以了。原来是这个变量没有实例化。少了一个NEW 就是没有实例化?

      看看下面就明白了:

      Dim a as 类和dim  as new 类有什么区别呢?

      Dim  a as 类指的是声明了a这个变量,但是并没有创建,意思就是我们只是定义了这个变量,但是并没有为这个变量分配内存空间,所以这个变量就是空值。我们只能再通过set a =new 类进行初始化,来为这个变量分配内存空间。

      而dim a as new 类与 dim a as 类和set a =new 类两句综合起来的作用是一样的。既定义了变量,又初始化了变量。

      你可能还会想,为什么有的时候不用进行实例化就可以呢?是因为有的变量系统自动的给实例化了,所以就不用自己再写一遍实例化的代码了。


总结:每一次新的学习都会遇到大大小小的各种问题,而我们就是在这些问题中一步一步的茁壮成长!fighting。。。

0 0
原创粉丝点击