当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我用visual c#+asp.net项目 不知怎么搞的,项目的断点调试功能就不能用了,在代码上可以加断点 但不起作用,程序不会中断。我其他的asp.net项目无此现象,所以我 觉得可能是我改动了程序中的某些设置导致,请高手指教,帮我改回来吧! ......
    摘要: 我用的是xp系统,上次点击了ie浏览器中的“修复浏览器”菜单,之后就只能用ip上网,而用域名则不能打开网页? ......


高手webdiyer(webdiyer),分页控件问题,请进

webdiyer大侠:  
      我下载安装了你的分页控件,按照你的例子建立一个页面,重写了存储过程,结果运行错误,自己怀疑是存储过程有问题,请重点指点一下,十分感谢。以下为错误信息及代码:  
   
  将   varchar   值   2-9-074     转换为数据类型为   int   的列时发生语法错误。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Data.SqlClient.SqlException:   将   varchar   值   2-9-074     转换为数据类型为   int   的列时发生语法错误。  
   
  源错误:    
   
   
  行   30:           cmd.Parameters.Add("@docount",false);  
  行   31:           conn.Open();  
  行   32:           Datagrid1.DataSource=cmd.ExecuteReader();  
  行   33:           Datagrid1.DataBind();  
  行   34:           conn.Close();  
     
   
  源文件:   E:\dbserver\temp.aspx         行:   32  
   
  <%@   Page   Language="C#"   %>  
  <%@   Register   TagPrefix="Webdiyer"   Namespace="Wuqi.Webdiyer"   Assembly="aspnetpager"   %>  
  <%@   import   Namespace="System.Data"   %>  
  <%@   import   Namespace="System.Data.SqlClient"   %>  
  <%@   import   Namespace="System.Configuration"   %>  
  <script   runat="server">  
   
          SqlConnection   conn;  
          SqlCommand   cmd;  
          void   Page_Load(object   src,EventArgs   e){  
          conn=new   SqlConnection(ConfigurationSettings.AppSettings["admin"]);  
          if(!Page.IsPostBack){  
          cmd=new   SqlCommand("dt_query",conn);  
          cmd.CommandType=CommandType.StoredProcedure;  
          cmd.Parameters.Add("@pageindex",1);  
          cmd.Parameters.Add("@pagesize",1);  
          cmd.Parameters.Add("@docount",true);  
          conn.Open();  
          pager.RecordCount=(int)cmd.ExecuteScalar();  
          conn.Close();  
          BindData();  
          }  
          }  
           
          void   BindData(){  
          cmd=new   SqlCommand("dt_query",conn);  
          cmd.CommandType=CommandType.StoredProcedure;  
          cmd.Parameters.Add("@pageindex",pager.CurrentPageIndex);  
          cmd.Parameters.Add("@pagesize",pager.PageSize);  
          cmd.Parameters.Add("@docount",false);  
          conn.Open();  
          Datagrid1.DataSource=cmd.ExecuteReader();  
          Datagrid1.DataBind();  
          conn.Close();  
          }  
          void   ChangePage(object   src,PageChangedEventArgs   e){  
          pager.CurrentPageIndex=e.NewPageIndex;  
          BindData();  
          }  
   
  </script>  
  <html>  
  <head>  
          <title>??</title>    
          <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"   />  
  </head>  
  <body>  
          <form   id="Form1"   runat="server">  
                  <asp:DataGrid   id="Datagrid1"   runat="server"></asp:DataGrid>  
                  <WEBDIYER:ASPNETPAGER   id="pager"   runat="server"   OnPageChanged="ChangePage"   HorizontalAlign="center"   CssClass="mypager"   ShowInputBox="always"   ShowPageInfo="before"   PageButtonCount="8"   PageSize="8"   />  
          </form>  
  </body>  
  </html>  
   
  存储过程:  
  CREATE   procedure   dt_query  
  (@pagesize   int,  
  @pageindex   int,  
  @docount   bit)  
  as  
  set   nocount   on  
  if(@docount=1)  
  select   count(统一编号)   from   jgqj_view  
  else  
  begin  
  declare   @indextable   table(id   int   identity(1,1),nid   int)  
  declare   @PageLowerBound   int  
  declare   @PageUpperBound   int  
  set   @PageLowerBound=(@pageindex-1)*@pagesize  
  set   @PageUpperBound=@PageLowerBound+@pagesize  
  set   rowcount   @PageUpperBound  
  insert   into   @indextable(nid)   select   统一编号   from   jgqj_view   order   by   使用部门    
  select   O.*   from   jgqj_view   O,@indextable   t   where   O.统一编号=t.nid  
  and   t.id>@PageLowerBound   and   t.id<=@PageUpperBound   order   by   t.id  
  end  
  set   nocount   off  
  GO  
   
 

NO.1   作者: webdiyer

请问   “2-9-074”   是“统一编号”的一个值吗?如果是的话问题就在这,这个标识字段必须是int类型,你看存储过程中那个   nid,它是int类型,在选择记录时就是根据这个临时表的字段的值来和你要选择记录的表的标识字段比较是否相等,相等则选择此标识字段所在的行的记录,一般的标识字段都是int类型的,我没意识到varchar类型的字段也可以作为标识字段,以后有时间改一下。现在要解决你的问题,请修改存储过程中的:  
  declare   @indextable   table(id   int   identity(1,1),nid   int)  
   
  将最后的   nid   int   改为   nid   varchar   试试。  
   
 


    摘要: 请教大虾,谁有关于vb操作数据库的事务回滚的例子 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE