在敲三层的登录窗体时,错误是肯定会有的,不过有些错误即使询问了度娘之后,也没能得到相应的解决方案,非常不开心。还好身边有大神,在网上四处五门的情况下找到了他们,得到了他们的帮助之后,三层登录窗体调错的速度越来越快。在此,我深深的感谢,有你们,真好。下面我来一一分享那些在网上无法查到的错误的解决方式
索引超出了数组界限:
这是索引值超出了数组界限,一直都无法运行下去,在度娘上面得到的信息各种各样,但是我觉得有用的有一条,其内容是:
在C#中数组下标是从0开始的. 也就是说
如果一个数组有三个元素.
应该是 aliex[0] ,aliex[1] , aliex[2]
这时候 aliex.Length = 3
那么 aliex[3] 当然已经超出了数组的界限.数组中根本不存在下标为3的元素
我看到这一段话之后,内心视乎有些什么被挑起,但是还是没办法将思想中的那一块布给掀开,直到有位美女程序员走过来帮我调试了一下,然后给出提示之后,那块布立马就像被掀开了似的,非常的给力。后来我根据上面那段百度上看到的话以及美女大神的提示,思考了一下这个问题的出现原因。
首先,我在SQL中设定了主键,在设定主键之后,主键所在的那一列不会再以可以引用的列的数组空间出现,即本来设定了四个数组空间,当有一个数组空间设定成主键之后,那么只有三个数组空间还可以引用,倘若主键是aliex[0]的话,后面三个是aliex[1]、aliex[2]、aliex[3]。但是当aliex[0]成为主键之后,那么aliex[1]、aliex[2]、aliex[3]相继变换成aliex[0]、aliex[1]、aliex[2]。即后面的空间向前移动一位,所以原来的长度是4,设定主键之后长度为3,那么就会产生长度跟原来的值匹配不上。总结一下,在用C#连接SQL,并且在SQL中设定了主键之后,读取时候会跳过主键,直接以主键下一条为索引值开始查询,而出现次错误的原因是代码中的索引值和SQL中的值没法对应匹配,即定义值的名称和列的名称对应不上,产生了如此的错误。
未处理SqlException:
这个问题是VS和SQL没有连接上,在网上百度了一下,总的来说,发现了6种办法,我都一一试过之后,发现没有一条对我是有用的,也许在不知不觉中这六条也起到了一定的作用,从而使得我这个VS和SQL 连上,在这里先说一下我在网上搜索到的六种方法:
1.SQL-右击服务器-属性--安全性-服务器身份验证(选择SQL Server和Windows身份验证模式)-登陆审核(仅限失败的登录)-关闭SQL-打开SQL,选择SQL Server身份验证登录
2.控制面板-管理工具-服务-右击SQL Server Browser-属性-启动类型(自动)-关闭属性框-右击SQL ServerBrowser(启动)
3.控制面板-管理工具-服务-右击SQL Server(SQLEXPRESS)-重新启动-关闭-重启SQL-选择SQL Server身份验证
4.SQL Server Configuration Manager-SQL Server 2014网络配置-MSSQLServer的协议-右击Named Pipes协议-启用-右击TCP/IP-启用--重启服务
5.SQL-安全性-登录名-右击sa-属性-去掉强制密码过期前的对钩
6.SQL-安全性-登录名-右击sa-属性-状态-登录(改为启用)
接着老付为我给我提供的办法就是打开用VS打开所要连接SQL的代码,然后点击VS上面菜单栏中的工具按钮,点击里面的连接数据库,进行相应的配置之后,显示出连接成功,于是这个问题就立马解决。后来想想,也许前面六步都是为后面连接数据库做铺垫的也说不准,所以在这里一一罗列出来,以备不时之需。