2012-10-19 55 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 –

相关问题