【机房重构】“ConnectionString属性尚未初始化”

    机房重构ing。在每个学习中一直陪伴我们左右的,还是那些大大小小的问题,正因为它们的存在,才让我们的学习有了收获,有了纠结,也有了乐趣。

    这几天一直在研究sqlhelper和泛型集合的使用,很那什么的说,纠结了几天,今天算是有点结果了,但是结果永远不会轻松而至。

    附图一张:

              【机房重构】“ConnectionString属性尚未初始化”_第1张图片

   错误提示:ConnectionString属性尚未初始化。因为它的出现让我再次开始了1小时多的百度之旅,查查查!下面

就总结一下这个问题。供大家参考,有不对的,希望看到的人,留下评论!

分析:

   属性尚未初始化,说明在使用它之前没有给它赋值。

   第一步.首先我们可以断点调试,看看是否给它赋值,在实践之后发现结果如下:

             

    第二步. 上图的错误,说明可能是数据连接那里出错,转去查看配置文件中数据连接字符串是否正确。

    正确如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key= "Connstr" value="Server=hcy-PC;Database=Charge;User ID=sa;password=123456"/>
  </appSettings>
</configuration>

    再次运行之后,Connstr有值了,但结果还是错误。


    第三步. 查看编写的代码,是否有逻辑错误或是书写错误的情况。

错误示范:这样写,在执行的时候,就会刚实例化一个Conn,然后又新创建了一个Conn,就出现了上述的错误提示。

当然大家还要注意第一行代码是否正确。从查资料发现,这里是大家很容易出错的地方。

Private ReadOnly ConnStr As String = ConfigurationManager.AppSettings("ConnStr")
  <span style="color:#ff0000;">  Dim Conn As New SqlConnection(ConnStr)</span>
<span style="color:#ff0000;">
    Public Sub New()
        Conn = New SqlConnection
    End Sub</span>


正确示例:

   第一种:在定义Conn时,就直接初始化它。

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;">Private ReadOnly ConnStr As String = ConfigurationManager.AppSettings("ConnStr")
 <span style="color:#333333;">   </span><span style="color:#ff0000;">Dim Conn As New SqlConnection(ConnStr) </span></span></span>

   第二种:先定义,再定义一个构造函数New去实例化它。

<span style="font-size:18px;">Private ReadOnly ConnStr As String = ConfigurationManager.AppSettings("ConnStr")
   <span style="color:#ff0000;"> Dim Conn As New SqlConnection
 
    Public Sub New()
        Conn = New SqlConnection(ConnStr)
    End Sub</span></span>
    
           遇到的错误越多,我们从解决问题的过程中就学到的越多。学到的不仅是知识,还有对于问题的态度,从开始的害怕到现在的接受问题,解决问题。这何尝不是一种进步呢?


  

你可能感兴趣的:(【机房重构】“ConnectionString属性尚未初始化”)