一个难以捉摸的问题!!!
<%@ 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




