2012-10-19 57 views
-1

我正在使用一種方法,可以從數據庫中獲取項目列表。我已經使用連接將數據插入數據庫並且工作正常,但是在gridview中顯示數據時會彈出一個異常。您可以在下面找到使用的方法,將數據綁定到gridview的代碼以及gridview的asp。希望你能幫助。由於連接必須有效並且打開

方法中檢索數據

public List<Bet> getBets() 
     { 
      MySqlCommand cmd = Connection.CreateCommand(); 
      cmd = new MySqlCommand("SELECT * FROM bets ORDER BY date"); 

      try 
      { 
       if (this.Connection.State == ConnectionState.Closed) 
        this.Connection.Open(); 

       MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); --> getting exception here 
       List<Bet> bets = new List<Bet>(); 

       while (dr.Read()) 
       { 
        Bet myBet = new Bet(); 
        myBet = FillBetfromRow(dr); 
        bets.Add(myBet); 
       } 
       return bets; 
      } 
      catch (MySqlException ex) 
      { 
       throw ex; 
      } 
      finally 
      { 
       if (Connection.State == ConnectionState.Open) 
        Connection.Close(); 
      } 
     } 

數據綁定到GridView控件

gvBets.DataSource = new BetManagement().getBets(); 
      gvBets.DataBind(); 
+1

和什麼是例外?你的題目? – Mark

+0

_「希望你能幫助我」 - - 如果你不解釋問題的話。從標題我猜你會得到一個異常?請捕獲完整的例外描述。然後做一個網上搜索。如果您無法找到解決方案,請編輯您的問題以包含異常情況,顯示其發生的路線並解釋您嘗試的內容。 – CodeCaster

+0

當你收到ErrorMessage時,你爲什麼會問這個問題?嘗試通過您的代碼進行調試。我猜你的連接對象可能包含錯誤的連接字符串或可能處於不一致的狀態 – KroaX

回答

0

嘗試用使用關鍵字變化。可能有密切的

try 
     { 
      if (this.Connection.State == ConnectionState.Closed) 
       this.Connection.Open(); 
      List<Bet> bets = new List<Bet>(); 
      using(MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)){ 


      while (dr.Read()) 
      { 
       Bet myBet = new Bet(); 
       myBet = FillBetfromRow(dr); 
       bets.Add(myBet); 
      } 
     } 
      return bets; 
     } 
+0

與使用相同的錯誤:/ –

+0

確定修正感謝它幫助:D –

0

只是關閉的DataReader while循環後,像dr.close()的數據讀取器的問題,以及連接CON分配給你的命令

+0

是的這是例外:連接必須是有效的和打開的。 我在這段代碼中得到這個異常MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); –

+0

cmd = new MySqlCommand(「SELECT * FROM bets ORDER BY date」,con);之後寫入MySqlDataReader dr = cmd.ExecuteReader(); – LearningAsp

0

您沒有設置在Connection你的Command對象。

MySqlCommand cmd = Connection.CreateCommand(); 
cmd = new MySqlCommand("SELECT * FROM bets ORDER BY date"); 
cmd.Connection = this.Connection; 
+0

感謝它的幫助:D –

相關問題