如何更新DataGrid中的数据?
我的DataGrid中有很多行数据,我想更新某一行的某个字段的值,我该用什么方法? 问题点数:50、回复次数:7Top
1 楼xfxf521(天使也一样)回复于 2006-07-04 14:07:58 得分 5
使用模版列,每一列加一个button按钮,再在时间里写响应的sql语句Top
2 楼francsescoli(我爱世界杯)回复于 2006-07-04 14:08:24 得分 0
给DataGrid增加一个编辑、更新、取消按钮列
Top
3 楼jc15271149(奶皮儿)回复于 2006-07-04 14:18:19 得分 0
参考MSDNTop
4 楼etilm(周贤)回复于 2006-07-04 14:22:53 得分 5
在UpdateCommand中写事件Top
5 楼yqwaxyq()回复于 2006-07-04 23:05:05 得分 30
<asp:datagrid id="DataGrid1" runat="server" DataKeyField="EmployeeID" CssClass="border" CellPadding="5"
BorderWidth="0px" CellSpacing="1" AutoGenerateColumns="False">
<ItemStyle CssClass="item"></ItemStyle>
<HeaderStyle CssClass="header"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="FirstName" HeaderText="FirstName"></asp:BoundColumn>
<asp:BoundColumn DataField="LastName" HeaderText="LastName"></asp:BoundColumn>
<asp:BoundColumn DataField="Title" HeaderText="Title"></asp:BoundColumn>
<asp:BoundColumn DataField="BirthDate" HeaderText="BirthDate" DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>
<asp:ButtonColumn ButtonType="LinkButton" CommandName="edit" Text="edit" Visible="False"></asp:ButtonColumn>
<asp:ButtonColumn ButtonType="LinkButton" CommandName="update" Text="update" Visible="False"></asp:ButtonColumn>
</Columns>
</asp:datagrid>
==========================================================================
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="edit")
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
SetBind();
}
if(e.CommandName=="update")
{
try
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strconn"]);
SqlCommand comm=new SqlCommand("update Employees set FirstName=@FirstName,LastName=@LastName,Title=@Title,BirthDate=@BirthDate where EmployeeID=@EmployeeID",conn);
SqlParameter parm1=new SqlParameter("@FirstName",SqlDbType.NVarChar,20);
parm1.Value=((TextBox)e.Item.Cells[0].Controls[0]).Text;
SqlParameter parm2=new SqlParameter("@LastName",SqlDbType.NVarChar,10);
parm2.Value=((TextBox)e.Item.Cells[1].Controls[0]).Text;
SqlParameter parm3=new SqlParameter("@Title",SqlDbType.NVarChar,20);
parm3.Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
SqlParameter parm4=new SqlParameter("@BirthDate",SqlDbType.DateTime);
parm4.Value=((TextBox)e.Item.Cells[3].Controls[0]).Text;
SqlParameter parm5=new SqlParameter("@EmployeeID",SqlDbType.Int);
parm5.Value=this.DataGrid1.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
comm.Parameters.Add(parm4);
comm.Parameters.Add(parm5);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
catch
{
Response.Write("<script>alert('输入的数据格式有误');</script>");
}
finally
{
this.DataGrid1.EditItemIndex=-1;
SetBind();
}
}
==============================================
这只是一种,方法很多的
Top
6 楼artak(甜葡萄)回复于 2006-07-04 23:42:24 得分 10
string content=((TextBox)e.Item.Cells[0].Controls[0]).Text;获取所要改的列的cell的值
在执行更新就好
Top
7 楼mextb1860()回复于 2006-07-04 23:56:17 得分 0
都不错。。帮忙顶Top




