2012-06-17 372 views
1

經過一段時間使用網站,加載內容等。此消息顯示「填充:SelectCommand.Connection屬性尚未初始化」! 我認爲這是因爲sql連接,但不知道...我想知道我能做些什麼來防止這種情況發生,每次發生這種情況時,我都必須上傳一個文件(SQL類,用於連接)和該網站開始再次運作。填充:SelectCommand.Connection屬性尚未初始化

我的SQL連接:

public class SQL 
{ 

    SqlCommand comandos; 
    public SqlConnection sql() 
    { 
     string Server = @"server"; 
     string Username = "user"; 
     string Password = "pass"; 
     string Database = "database"; 
     string ConnectionString = "Data Source=" + Server + ";"; 
     ConnectionString += "User ID=" + Username + ";"; 
     ConnectionString += "Password=" + Password + ";"; 
     ConnectionString += "Initial Catalog=" + Database; 

     SqlConnection Connection = new SqlConnection(); 
     try 
     { 
      Connection.ConnectionString = ConnectionString; 
      Connection.Open(); 
      return Connection; 
     } 
     catch (Exception) 
     { 
      if (Connection != null) 
      { 
       Connection.Dispose(); 
     } 
     return null; 
     } 
    } 

    public void FazerComando(string comando) 
    { 
     comandos = new SqlCommand(comando, sql()); 
     comandos.ExecuteNonQuery(); 
    } 

    public DataTable Execute(string comando) 
    { 
     SqlDataAdapter SQLDataAdapter = new SqlDataAdapter(comando, sql()); 
     DataTable dtResult = new DataTable(); 
     SQLDataAdapter.Fill(dtResult); 
     return dtResult; 
    } 
} 

回答

3

這可能與你的問題,但在任何情況下,它的東西,應該解決:你不是你的配置連接時,你與他們做。你應該使用using

public void FazerComando(string comando) 
    { 
     using (var conn = sql()) 
     { 
      comandos = new SqlCommand(comando, conn); 
      comandos.ExecuteNonQuery(); 
     } 
    } 
    public DataTable Execute(string comando) 
    { 
     using (var conn = sql()) 
     { 
      SqlDataAdapter SQLDataAdapter = new SqlDataAdapter(comando, conn); 
      DataTable dtResult = new DataTable(); 
      SQLDataAdapter.Fill(dtResult); 
      return dtResult; 
     } 
    } 
+0

我認爲它的工作,我推動網站,它沒有崩潰!坦克很多! – Severiano

1

我從來沒有采取過這種方法。我們通常只在web config中使用連接字符串,特別是使用linq,它工作得很好。我建議你看看http://blogs.msdn.com/b/visualstudio/archive/2012/06/11/world-of-samples-at-your-fingertips.aspx並追蹤。您應該找到一個建議的連接最佳實踐的好例子。連接字符串將在應用程序的第一個應用程序中讀取,連接池(v imortant)用於最佳效果。

哦,你是不是你的配置連接,這將導致內存韭菜和IIS清除出你的應用程序池當memeory使用過大的 - 所有的V壞

至於其他respondant說,而我正在查找蝙蝠俠鏈接...

HTH

相關問題