在执行调试(不设断点)时报错:System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常 。 
声明:在调试设断点时运行时正常的。 
在执行不调试时报错: 
************** 异常文本 ************** 
System.NullReferenceException: 未将对象引用设置到对象的实例。 
  在 jingxiang.ConfigFrm.Open(String strIP, String strDatabase, String strUid, String strPwd) 
  位置 E:\Office\Task 2667\jingxiang\jingxiang\ConfigFrm.cs:行号 576 
  在 jingxiang.ConfigFrm.btnDTest_Click(Object sender, EventArgs e) 
  位置 E:\Office\Task 2667\jingxiang\jingxiang\ConfigFrm.cs:行号 595 请高手帮忙看看这是什么原因导致的,谢谢。 主要代码如下: private void Open(string strIP, string strDatabase, string strUid, string strPwd) 
        { 
            string connectionString = "Data Source=" + strIP + "; Initial Catalog=" + strDatabase + "; Persist Security Info=True; User ID=" + strUid + "; Pwd=" + strPwd; 
            SqlConnection mySqlConnection = new SqlConnection(connectionString);×××执行调试(不设断点)时报错位置 
            try 
            { 
                if(mySqlConnection.State==ConnectionState.Closed) 
                mySqlConnection.Open(); 
            } 
            catch (Exception err) 
            { 
                MessageBox.Show("不能联接" + err.ToString(), "出错了!", MessageBoxButtons.OK, MessageBoxIcon.Question); 
            } 
            finally 
            { 
                if (mySqlConnection.State == ConnectionState.Closed || mySqlConnection.State == ConnectionState.Broken) 
                { 
                    MessageBox.Show("连接失败"); 
                } 
                else 
                { 
                    mySqlConnection.Close(); 
                    MessageBox.Show("连接成功"); 
                } 
            } 
        } 

解决方案 »

  1.   

    SqlConnection mySqlConnection = new SqlConnection(connectionString);×××  不应该在这里报错啊,如果connectionstring 有错,应该是在open的时候
      

  2.   

    System.NullReferenceException: 未将对象引用设置到对象的实例。
      

  3.   

    SqlConnection mySqlConnection = new SqlConnection(connectionString);×××  不应该在这里报错啊,如果connectionstring 有错,应该是在open的时候
      

  4.   

    SqlConnection mySqlConnection = new SqlConnection(connectionString);×××执行调试(不设断点)时报错位置 
    如你所说,如果这里的话,可能是你的字符串有问题,另外可能执行此方法后字符串更改,而再次执行时候出错。或者是调用方法时候有循环,很容易出错
      

  5.   

    感谢各位好友的关注...
    问题终于解决了,程序出错的原因应该是:我在修改程序后没有重新生成项目,只重新生成了解决方案, 把根目录下的一系列项目生成的文件手工删除后,在执行程序就没问题了。好像这段更简单实用些:
    SqlConnection myConnection = null;
                try
                {
                    string connString = "server="+strIP+";database="+strDatabase+";uid="+strUid+";pwd="+strPwd+";";
                    myConnection = new SqlConnection(connString);
                    if (myConnection.State == ConnectionState.Closed)
                        myConnection.Open();
                    myConnection.Close();
                    myConnection.Dispose();
                    MessageBox.Show(" 连接成功 ");
                }
                catch (Exception)
                {
                    throw;
                }小弟,谢过了 ...