2007.10.09错误记录
1) Response.Write("<script language=javascript>alert("bbbbb")</script>");错误之处为:“alert("bbbbb")”,正确写为:“alert('bbbbb')”。
2) 数据源不支持服务器端的数据分页(GridView控件的使用)。
可能原因:绑定数据源的时候用的是datareader,而datareader是只能向前的记录集,是不支持分布的
解决方案:把datareader换成dataset 或 datatable,
错误的代码为:
inComm.CommandText = "select * from qx_StuInfo where uSchId =" + shindex;
inComm.ExecuteNonQuery();
SqlDataReader dr = inComm.ExecuteReader();
GridView1.DataSource = dr;
GridView1.DataBind();
修改为:
string sqltxt = "select * from qx_StuInfo where uSchId =" + shindex;
SqlDataAdapter da = new SqlDataAdapter(sqltxt, inCon);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
3)
遇到下列相似问题,在网上查到下面分析不错,在此分享:
GridView“GridView1”激发了未处理的事件“RowDeleting” 异常详细信息: System.Web.HttpException: GridView“GridView1”激发了未处理的事件“RowDeleting”。 原因分析: 在GridView1的事件中,即删除的确认对话框,因此,当你单击【删除】按钮时,已经执行了RowCommand事件,即执行了删除操作,然后再引发了RowDeleting了事件,但是代码中没有定义该事件,所以出错
解决方案: 1)你可以把【删除】按钮按钮的CommandName属性的值(原值为“delete”)修改为不是"delete"就可以了,譬如修改为“del”; 2)或者你主动添加一个RowDeleting事件,该事件中的代码为空。
GridView的PageIndexChanging事件代码:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
showGridView();
}
4)
SqlException ,超时时间已到。在操作完成之前超时时间已过或服务器未响应。 异常信息: 异常类型: SqlException 异常消息: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。获得数据连接超时。原因分析: <1>数据库正在进行备份操作。 <2>数据库设置的超时时间太短 <3>程序中获得的Connection没有及时释放 <4> 程序中的Transaction没有Commit或者RallBack
5)GridView的表头名称问题:
我想在cs里设置gridview的表头名称
我这样试了一下不对:
GridView1.Columns[1].HeaderText ="姓名";
行 32: GridView1.DataSource = dt;
行 33: GridView1.AutoGenerateColumns = false;
行 34: GridView1.Columns[0].HeaderText ="ID";
行 35: GridView1.Columns[1].HeaderText ="姓名";
行 36: GridView1.DataBind();
错误提示是:System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
分析:
这段代码有两个问题:
一、GridView1.AutoGenerateColumns = false;
这里由于是 false,所以没有自动创建列。
二、即使上面指定为 true,也会发生错误,为什么呢?因为动态创建的列是不会存储在公共可访问的字段集合中的,也就是说即使显示了 n 列,m 行,GridView1.Columns.Count 结果也是 0,也就不能对列进行索引。
你可以在数据源中改变列标题:
比如:
ds.Tables[0].Columns[0].ColumnName = "学号";