我在 ASP.NET 中编写了一段代码,该代码从 SQL 表中读取数据并在 GridView 中显示它并使用行数据绑定(bind)事件。但是当我运行该程序时,会出现此异常“'System.StackOverflowException 类型的未处理异常'出现在 mscorlib.dll 中”,在代码的指定语句中:
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();
}
最佳答案
试试这个:
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();
}
}
}
关于.net - mscorlib.dll 中出现类型为 System.StackOverflowException 的未处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645314/