• 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 = "学号";

  • 相关阅读:
    php apc 安装
    apaache php 日记设计
    memcache windows64 位安装
    JavaScript的作用域与闭包
    怎样写一个简单的操作系统?
    php 关于锁的一些看法
    Windows版本Apache+php的Xhprof应用__[2]
    Windows版本Apache+php的Xhprof应用
    使用TortoiseGit对Git版本进行分支操作
    机器学习数据不均衡问题
  • 原文地址:https://www.cnblogs.com/macavalier/p/1307232.html
Copyright © 2020-2023  润新知