CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

一个难以捉摸的问题!!!

楼主jjjjjjjjcq()2005-02-01 14:45:42 在 .NET技术 / ASP.NET 提问

<%@   Page   Language="c#"   debug="true"%>  
  <%@   Import   Namespace="System.Data"%>  
  <%@   Import   Namespace="System.Data.SqlClient"   %>  
   
  <script   runat="server">  
   
  //make   first   sql    
  String   sql   =   "";  
  String   strCnn   =   "Data   Source=.;Initial   Catalog=0808;User   Id=sa;Password=password;";  
  //create   a   datasource   function  
  public   ICollection   CreateDataSource   ()   {  
  SqlConnection   conn   =   new   SqlConnection(strCnn);  
   
  SqlDataAdapter   db_sqladaptor   =   new   SqlDataAdapter(sql,conn);  
   
  DataSet   ds   =   new   DataSet();  
  db_sqladaptor.Fill(ds,"productlist");  
   
  DataView   myView   =   ds.Tables["productlist"].DefaultView;  
  return   myView;  
  }  
   
   
  //do   page   load  
   
  public   void   Page_Load(Object   sender,   EventArgs   e)   {  
  strCnn   =   "Data   Source=.;Initial   Catalog=0808;User   Id=sa;Password=password;";  
   
  if   (!IsPostBack)    
  {  
  sql   =   "Select   *   FROM   productlist";  
  People.DataSource   =   CreateDataSource();  
  People.DataBind();  
  }  
   
  }  
   
  public   void   Page_Grid(Object   sender,   DataGridPageChangedEventArgs   e)    
  {  
  sql   =   "Select   *   FROM   productlist";  
  //   Set   CurrentPageIndex   to   the   page   the   user   clicked.  
  People.CurrentPageIndex   =   e.NewPageIndex;  
   
  //   Rebind   the   data.    
  People.DataSource   =   CreateDataSource();  
  People.DataBind();  
   
  }  
   
  public   void   People_Edit(Object   sender,   DataGridCommandEventArgs   e)    
  {  
  sql   =   "Select   *   FROM   productlist";  
   
  People.EditItemIndex   =   e.Item.ItemIndex;  
  People.DataSource   =   CreateDataSource();  
  People.DataBind();  
   
  }  
   
  public   void   People_Cancel(Object   sender,   DataGridCommandEventArgs   e)    
  {  
  sql   =   "Select   *   FROM   productlist";  
  People.EditItemIndex   =   -1;  
  People.DataSource   =   CreateDataSource();  
  People.DataBind();  
   
  }  
   
  public   void   People_Update(Object   sender,   DataGridCommandEventArgs   e)    
  {  
  string   productname   =   ((TextBox)e.Item.Cells[1].Controls[1]).Text;  
  string   price   =   ((TextBox)e.Item.Cells[2].Controls[1]).Text;  
   
  SqlConnection   connUpdate   =   new   SqlConnection(strCnn);  
  connUpdate.Open();  
  String   sql_edit   =   "UPDATE   productlist   "   +  
  "SET   productname   =   '"   +   productname.Replace("'","''")+   "',"   +  
  "price   =   '"   +   price.Replace("'","''")+   "'"   +  
  "   WHERE   productid   =   "   +   e.Item.Cells[0].Text;  
   
  SqlCommand   sqlCommandUpdate   =   new   SqlCommand(sql_edit,connUpdate);  
  sqlCommandUpdate.ExecuteNonQuery();  
  connUpdate.Close();  
   
  sql   =     "Select   *   FROM   productlist";  
  People.EditItemIndex   =   -1;  
  People.DataSource   =   CreateDataSource();  
  People.DataBind();  
   
  }  
  public   void   Search(Object   sender,   EventArgs   E)  
    {  
  sql   =   "Select   *   FROM   productlist";  
  if(productname.Text!="")  
  {  
        sql=sql+"   where   productname   like   '"+Convert.ToString(productname.Text)+"%'";  
  }  
  if(radiobutton1.Checked   ==   true)    
  {  
        sql=sql;  
  }  
  if(radiobutton2.Checked   ==   true)    
  {  
        sql=sql+"   where   inventory   >0   ";  
  }  
  People.DataSource   =   CreateDataSource();  
  People.DataBind();    
     
     
     
    }  
   
  </script>  
  <html><!--   #BeginTemplate   "/Templates/adm_default.dwt"   -->  
  <head>  
  <title>七色花后台</title>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <link   rel="stylesheet"   href="style.css">  
  <script   language="JavaScript"   src="admin.js">  
  </script>  
   
  </head>  
  <body   bgcolor="#FFCC33">  
    <!--#include   file="../conn/admin_title.inc"-->  
  <link   rel="stylesheet"   href="style.css">  
  <table   width="748"   border="0"   cellspacing="0"   cellpadding="0">  
      <tr   align="center"   valign="top">    
          <td   width="748"   bgcolor="#FFFFFF"   height="20">   <br>  
              <table   width="700"   border="0"   cellspacing="0"   cellpadding="0"   class="p9">  
                  <tr   valign="top">    
                      <td><!--   #BeginEditable   "talbe"   -->    
                          <p>当前位置:<a   href="product_list.asp">产品管理</a>----><a   href="07_stock_list.aspx">库存管理</a>    
                          </p>  
   
   
  <form   runat="server">  
  <asp:radiobutton   id="radiobutton1"   runat="server"   GroupName="radiobtn"   Value=1   Text="全部商品"></asp:radiobutton>  
  <asp:radiobutton   id="radiobutton2"   runat="server"   GroupName="radiobtn"   Value=0   Text="有库存商品"></asp:radiobutton>  
   
  商品关键字:  
  <asp:textbox   id="productname"   runat="server"></asp:textbox>  
                                  <asp:button   Text="查询"   OnClick="Search"   runat="server"   />  
                             
   
  <asp:DataGrid   id="People"   runat="server"  
  BorderColor="green"    
  Width="640"    
  PageSize="5"    
  AllowPaging="true"    
  OnPageIndexChanged="Page_Grid"    
  BorderWidth="1"  
  CellPadding="3"  
  AutoGenerateColumns="false"  
  ShowHeader="true"    
  Visible="true"    
   
  OnEditCommand="People_Edit"    
  OnCancelCommand="People_Cancel"    
  OnUpdateCommand="People_Update"    
  >  
   
  <HeaderStyle   BorderColor="White"   BackColor="#FFCC00"    
  ForeColor="Black"    
  Font-Bold="true"    
  Font-Name="Arial"    
  Font-Size="9"   HorizontalAlign="Center"  
  />  
   
  <ItemStyle       BorderColor=""    
  BackColor="#FFFFF0"    
  ForeColor="Black"    
  Font-Name="Arial"    
  Font-Size="9"    
  Font-Bold="False"   HorizontalAlign="Center"/>  
   
  <EditItemStyle       BorderColor=""    
  BackColor="#FFFFF0"    
  ForeColor="Black"    
  Font-Name="Arial"    
  Font-Size="9"    
  Font-Bold="False"   HorizontalAlign="Center"/>  
   
  <PagerStyle   Mode="NumericPages"   Font-Size="8"/>  
   
  <Columns>  
   
  <asp:BoundColumn   HeaderText="ID"   ReadOnly="true"   DataField="productid"   visible=false/>  
  <asp:BoundColumn   HeaderText="ID"   ReadOnly="true"   DataField="productid"   visible=false/>  
   
  <asp:TemplateColumn>  
   
  <HeaderTemplate>  
  <b>产品代码   </b>  
  </HeaderTemplate>  
   
  <ItemTemplate>  
  <asp:Label  
  Text='<%#   DataBinder.Eval(Container.DataItem,   "productcode").ToString().Trim()   %>'  
  runat="server"/>  
  </ItemTemplate>  
   
   
  <EditItemTemplate>  
  <asp:TextBox   id="productcode"   Text='<%#   DataBinder.Eval(Container.DataItem,   "productcode").ToString().Trim()   %>'    
  runat="server"   Width="100%"/>  
  </EditItemTemplate>  
   
  </asp:TemplateColumn>  
   
  <asp:TemplateColumn>  
   
  <HeaderTemplate>  
  <b>   商品名称   </b>  
  </HeaderTemplate>  
   
  <ItemTemplate>  
  <A   href='07_product_change.asp?productid=<%#   DataBinder.Eval(Container,   "DataItem.productid")%>'>  
  <asp:label   id="productname"   runat="server"   Text='<%#   DataBinder.Eval(Container,   "DataItem.productname")   %>'>  
  </asp:label>  
  </A>  
   
  </ItemTemplate>  
   
   
  <EditItemTemplate>  
  <asp:TextBox   id="productname"   Text='<%#   DataBinder.Eval(Container.DataItem,   "productname").ToString().Trim()   %>'    
  runat="server"   Width="80%"/>  
  </EditItemTemplate>  
   
  </asp:TemplateColumn>  
   
  <asp:TemplateColumn>  
   
  <HeaderTemplate>  
  <b>   单价   </b>  
  </HeaderTemplate>  
   
  <ItemTemplate>  
  <asp:Label    
  Width="200"    
  Text='<%#   DataBinder.Eval(Container.DataItem,   "price").ToString().Trim()   %>'    
  runat="server"/>  
  </ItemTemplate>  
   
  <EditItemTemplate>  
  <asp:TextBox   id="price"   Text='<%#   DataBinder.Eval(Container.DataItem,   "price").ToString().Trim()   %>'    
  runat="server"   Width="80%"/>  
  </EditItemTemplate>  
   
  </asp:TemplateColumn>  
  <asp:TemplateColumn>  
   
  <HeaderTemplate>  
  <b>   数量   </b>  
  </HeaderTemplate>  
   
  <ItemTemplate>  
  <asp:Label    
  Width="200"    
  Text='<%#   DataBinder.Eval(Container.DataItem,   "inventory").ToString().Trim()   %>'    
  runat="server"/>  
  </ItemTemplate>  
   
  <EditItemTemplate>  
  <asp:TextBox   id="inventory"   Text='<%#   DataBinder.Eval(Container.DataItem,   "inventory").ToString().Trim()   %>'    
  runat="server"   Width="80%"/>  
  </EditItemTemplate>  
   
  </asp:TemplateColumn>  
   
  <asp:EditCommandColumn  
  ButtonType="LinkButton"  
  CancelText="取消"  
  EditText="编辑"  
  UpdateText="更新"    
    HeaderText="编辑"  
  />  
   
  </Columns>  
   
  </asp:DataGrid>  
   
  </form>  
  <!--   #EndEditable   --></td>  
                  </tr>  
              </table>  
              <br>  
          </td>  
      </tr>  
      <tr   align="right"   valign="top">    
          <td   width="748"   height="2">    
            <!--#include   file="../conn/admin_down.inc"--></td>  
      </tr>  
  </table>  
  </body>  
  为什么每次我查询好以后比如说输入商品关键字:惠氏,然后会查出相应的记录,但是如果查出的记录只有一条时,我点编辑,总会对数据库中的第一条记录进行编辑??望高手指点!! 问题点数:0、回复次数:15Top

1 楼njuzgj(罐子)回复于 2005-02-01 14:51:17 得分 0

帮顶Top

2 楼fangwancong(聪头.珠海)回复于 2005-02-01 14:53:39 得分 0

点编辑后主要是你想要怎么的修改方式。可以在列表中直接修改,也可以把值传到另外一个页页中修改。Top

3 楼liulxmooo(娃娃)回复于 2005-02-01 14:54:08 得分 0

upTop

4 楼LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)回复于 2005-02-01 14:55:43 得分 0

edit以后sql   =   "Select   *   FROM   productlist";了  
  而不是查询过的sql了Top

5 楼trnbo(【没有蛀牙】)回复于 2005-02-01 14:57:24 得分 0

执行update的时候查询条件不正确Top

6 楼cobrastudio(老汉我)回复于 2005-02-01 14:59:00 得分 0

没细看。  
   
  总对第一条记录进行编辑,那么是不是你绑定的记录ID有问题?Top

7 楼snowpine999([彼岸烟花][当你看到☆河灿烂,可会想起我?])回复于 2005-02-01 15:12:26 得分 0

upTop

8 楼jjjjjjjjcq()回复于 2005-02-01 15:16:44 得分 0

to:我想点编辑以后直接在本页面进行修改,有什么办法吗??各位大侠麻烦帮我看一下为什么总是对第一条进行编辑!!谁帮在在上面直接改,不管对错,可以运行立即给分,麻烦了Top

9 楼xnice(小土豆)回复于 2005-02-01 15:25:44 得分 0

好长......Top

10 楼LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)回复于 2005-02-01 15:30:04 得分 0

把现在edit中的东西改成你现在search中的东西就可以了Top

11 楼AllenTing(今天你GC了吗???)回复于 2005-02-01 15:50:42 得分 0

帮你顶Top

12 楼sutalon(神州无敌)回复于 2005-02-01 15:52:06 得分 0

upTop

13 楼luckyprg(lucky)回复于 2005-02-01 15:55:05 得分 0

string   productname   =   ((TextBox)e.Item.Cells[1].Controls[1]).Text;  
  string   price   =   ((TextBox)e.Item.Cells[2].Controls[1]).Text;  
   
  这两行改成  
   
  string   productname   =   ((TextBox)e.Item.Cells[1].Controls[0]).Text;  
  string   price   =   ((TextBox)e.Item.Cells[2].Controls[0]).Text;Top

14 楼luckyprg(lucky)回复于 2005-02-01 15:56:55 得分 0

而且如果你的price不是字符型的话,记录的UPDATE语句也要改,在price的值的两边无需'单引号。Top

15 楼haoco()回复于 2005-02-01 15:58:58 得分 0

upTop

相关问题

  • 一个有点难以捉摸的问题

关键词

得分解答快速导航

  • 帖主:jjjjjjjjcq

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo