• 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了事件,但是代码中没有定义该事件,所以出错

    <asp:TemplateField HeaderText="操作">        <ItemTemplate>                 <asp:LinkButton ID="lbtnDelete" runat="server" CommandName="Delete" CommandArgument='<%#Eval("F_ID") %>' OnClientClick="return confirm('您确定要删除吗?')">[删除]</asp:LinkButton></td>          </ItemTemplate> </asp:TemplateField>

    解决方案:  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 = "学号";

  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/macavalier/p/1307232.html
Copyright © 2020-2023  润新知