2017-06-15 166 views
0

enter image description here連接未關閉。連接的當前狀態已打開。 //新

公共部分類註冊:System.Web.UI.Page { 的SqlConnection CON =新的SqlConnection(ConfigurationManager.ConnectionStrings [ 「dbcon」]的ToString());

public int chkuser() 
    { 
     if (con.State.ToString() == "open") 
      con.Close(); 
     SqlCommand cmd = new SqlCommand("select count(*) from Task2_SignUp where UserName= '"+txtUName.Text+"'",con); 
     con.Open(); 
     int flag = Convert.ToInt32(cmd.ExecuteScalar().ToString()); 
     return flag; 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void btnSignUp_Click(object sender, EventArgs e) 
    { 
     if(chkuser()==0) 
     { 
      if (con.State.ToString() == "open") 
       con.Close(); 
      SqlCommand cmd = new SqlCommand("insert into Task2_SignUp (UserName,Password,Name) values (@UserName, @Password, @Name)", con); 
      cmd.Parameters.AddWithValue("@Username", txtUName.Text); 
      cmd.Parameters.AddWithValue("@Password", txtPassword.Text); 
      cmd.Parameters.AddWithValue("@Name", txtName.Text); 
      con.Open(); //ERROR SHOWING IN THIS LINE 
      cmd.ExecuteNonQuery(); 
      con.Close(); 

      lblSignUp.Text = "Registration Successfull"; 
      _blank(); 
     } 
     else if(chkuser()>0) 
     { 
      lblSignUp.Text = "Username not available"; 
     } 
    } 
    public void _blank() 
    { 
     txtName.Text = ""; 
     txtUName.Text = ""; 
     txtPassword.Text = ""; 
    } 

    protected void btnNext_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("Login.aspx"); 
    } 
} 

}

問:這是我收到不知道爲什麼..和suprprisingly相同的代碼工作兩年星期前,但現在不工作的錯誤..請儘可能幫助我。

+0

不知道它是否會產生差異,但我會使用以下if(connection.State == ConnectionState.Open)而不是當前檢查的方式來查看連接是否打開 –

+0

可能的連接重複沒有關閉連接的當前狀態是打開](https://stackoverflow.com/questions/13343236/the-connection-was-not-closed-the-connections-current-state-is-open) –

+0

沒有..相同問題::( – Saakey7

回答

0

該問題已解決。這是一個小錯誤。而不是(con.State.ToString()==「打開」)我寫了(con.State.ToString()==「open」)...意味着代替資本'O'我寫了小'o'..因此這個問題發生..休息我的代碼是abosultely罰款。作爲一名培訓生開發人員,我學到了這個東西。如果還有其他像我一樣剛開始學習的dot net的實習開發人員,那麼你一定不要猶豫。只要記住語法。

0

問題:

  1. 功能chkUser有一些問題。如果txtUName.Text包含單引號,則會引發異常。最好重新編碼以使用參數。

  2. 另外,WHERE是否發生異常?發佈堆棧跟蹤。

  3. 當您可以使用connection.State == ConnectionState.Open時,不需要con.State.ToString() == "open"

  4. 我們不知道您的數據庫自「兩週前」以來是否發生了變化,因此您可能從此處開始。

+0

1)這個錯誤是否連接到數據庫? 2)在第二次運行時發生在函數Chkuser中的問題..我用斷點作弊。3)我總是使用con.state.tostring()==「open」,就像我的培訓師所教導的那樣..我仍然處於培訓期。會有什麼問題嗎? :) – Saakey7

相關問題