2011-07-11 16 views
3

ASP.NETでSQLテーブルからデータを読み込んでグリッドビューで表示し、行データバインドEvent.Butを使用してプログラムを実行すると、この例外が発生するコードの指定された声明の中で「型 『System.StackOverflowException』の未処理の例外がmscorlib.dllで発生したが、」:mscorlib.dllでSystem.StackOverflowException型の未処理例外が発生しました

private void BindAllUsers() 
    { 
     SqlDataAdapter da = new SqlDataAdapter("SELECT ID, Name, Email, Password, Contact, CreatedOn, CreatedBy,CreatedIP From tbl_Users",con); 
     DataSet ds = new DataSet(); 
     da.Fill(ds);  <------(Error occurs in this line) 
     gdv_Users.DataSource = ds; 
     gdv_Users.DataBind(); 

    } 

をRowDataBoundEventハンドラは次のとおりです。

protected void gdv_Users_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     e.Row.Cells[0].Style["Cursor"] = "hand"; 
     e.Row.Cells[0].ToolTip = "Click Here"; 
     e.Row.Cells[0].Attributes.Add("onclick","window.open('Details.aspx'?ID=" + e.Row.Cells[0].Text.ToString()+"'Details';'width = 735,height= 350,left = 220,top = 300,resizable = 0,scrollbars = 0,status = no')"); 
    } 

BindAllUser機能がありますここに呼び出される:

protected void Page_Load(object sender, EventArgs e) 
{ 
    BindAllUsers(); 
    BindDropDown(); 

} 
+1

あなたは、Visual Studioのコールスタックに何を見ていますか? – SLaks

+3

私はあなたがOnRowDataBoundEventのBindAllUsersを呼び出していると思います。また、グリッドを再び無限ループに陥らせているためです。 RowDataaBoundイベントハンドラを投稿できますか? – Chandu

+0

@Rachit:BindAllUsersメソッドを呼び出す場所にコードを投稿することはできますか? – Chandu

答えて

0

これを試してみてください:

 private void BindAllUsers() 
    { 
     using (SqlConnection con = new SqlConnection("connection string")) 
     { 
      con.Open(); 
      SqlCommand command = new SqlCommand(); 
      command.Connection = con; 
      command.CommandText = "SELECT ID, Name, Email, Password, Contact, CreatedOn, CreatedBy,CreatedIP From tbl_Users"; 
      SqlDataReader dr = command.ExecuteReader(); 
      if (dr.HasRows) 
      { 
       gdv_Users.DataSource = ds; 
       gdv_Users.DataBind(); 
      } 
     } 

    } 
+0

OnDataBoundイベントからこのメソッドを呼び出すかどうかも確認します。 – matrix

+0

はい私はこのメソッドをOnDataBoundから呼び出していました。削除され、正常に動作します。ありがとう。 –

関連する問題