{
string val=((TextBox)e.Item.FindControl("TextBox1")).Text;
}
为什么当我在TextBox1里输入新值后,按“更新”后TextBox1的值又变回原来的值,而val的值也是TextBox1原来的值。请问应该怎么解决?谢谢!
void Mydatagrid_UpdateCommand(object sender,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
Mydatagrid.EditItemIndex=(int)e.Item.ItemIndex;
sqlcon = new SqlConnection("server=.;user=sa;database=dotnet");
string sqlstr="update titles set title_id=@id,title=@title,type=@type,pubdate=@pubdate where title_id=@id";
sqlcmd = new SqlCommand(sqlstr,sqlcon);
sqlcmd.Parameters.Add("@id",System.Data.SqlDbType.VarChar);
sqlcmd.Parameters.Add("@title",System.Data.SqlDbType.VarChar);
sqlcmd.Parameters.Add("@type",SqlDbType.VarChar);
sqlcmd.Parameters.Add("@pubdate",SqlDbType.VarChar);
//将更改后的值交给参数
sqlcmd.Parameters["@id"].Value=((TextBox)e.Item.Cells[0].Controls[0]).Text;
sqlcmd.Parameters["@title"].Value=((TextBox)e.Item.Cells[1].Controls[0]).Text;
sqlcmd.Parameters["@type"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
sqlcmd.Parameters["@pubdate"].Value=((TextBox)e.Item.Cells[3].Controls[0]).Text;
sqlcon.Open();
sqlcmd.ExecuteNonQuery();
sqlcon.Close();
this.Mydatagrid.EditItemIndex=-1;
sqldar = new SqlDataAdapter("select * from titles","server=.;user=sa;database=dotnet");
DataSet ds = new DataSet();
sqldar.Fill(ds,"titles");
this.Mydatagrid.DataSource=ds.Tables["titles"].DefaultView;
this.Mydatagrid.DataBind();
}
数据库dotnet
表结构:
create table titles
(
title_id varchar(20),
title varchar(20),
type varchar(20),
pubdate varchar(20)
)