我在ASP.NET中编写了一个代码,用于从SQL表中读取数据并在网格视图中显示它并使用行数据绑定事件。但是当我运行程序时,出现这种异常“类型为'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();
}
答案 0 :(得分: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();
}
}
}