如何更新一个GridView使用绑定列时 [英] How to Update a GridView when boundfield is used
问题描述
我有一个 GridView控件
,它绑定到一个数据库中。我发现在数据库更新 GridView控件
和相应的表的困难。
我的ASP code为 GridView控件
绑定到的SqlDataSource后:
< ASP:GridView控件ID =GridView2=服务器OnRowEditing =GridView2_RowEditing
OnRowUpdating =GridView2_RowUpdating的cellpadding =4前景色=#333333OnRowCancelingEdit =GridView2_RowCancelingEdit
OnRowDataBound =GridView2_RowDataBound的AutoGenerateColumns =FALSE
的DataSourceID =SqlDataSource1AutoGenerateEditButton属性=真的DataKeyNames =位置>
<柱体和GT;
< ASP:BoundField的数据字段=位置的HeaderText =位置
SORTEX pression =位置只读=真/>
< ASP:BoundField的数据字段=Lamp_pro4的HeaderText =Lamp_pro4
SORTEX pression =Lamp_pro4/>
< ASP:BoundField的数据字段=Lamp_pro5的HeaderText =Lamp_pro5
SORTEX pression =Lamp_pro5/>
< ASP:BoundField的数据字段=AC_Profile5的HeaderText =AC_Profile5
SORTEX pression =AC_Profile5/>
< /专栏>< / ASP:GridView的>
< ASP:SqlDataSource的ID =SqlDataSource1=服务器
的ConnectionString =下;%$的ConnectionStrings:TouchPadConnectionString%>中
的SelectCommand =SELECT * FROM [数量]>
< / ASP:SqlDataSource的>
我datakey是位置和它的只读。
本的.cs code用于更新为:
保护无效GridView2_RowUpdating(对象发件人,GridViewUpdateEventArgs E)
{
SqlConnection的CON =新的SqlConnection(数据源= ARCHANA-PC \\\\ ARCHANA;初始目录=触摸板;集成安全性=真);
字符串LOCNAME = GridView2.DataKeys [e.RowIndex] .Values [位置]的ToString()。
文本框TXT1 =(文本框)GridView2.Rows [e.RowIndex] .FindControl(Lamp_pro4);
文本框TXT2 =(文本框)GridView2.Rows [e.RowIndex] .FindControl(Lamp_pro5);
文本框txt3 =(文本框)GridView2.Rows [e.RowIndex] .FindControl(AC_Profile5);
字符串updStmt =更新量设置Lamp_pro4 = @ Lamp_pro4,Lamp_pro5 = @ Lamp_pro5,AC_Profile5 = @ AC_Profile5其中,位置= @ LOCNAME; con.Open();
的SqlCommand updCmd =新的SqlCommand(updStmt,CON); updCmd.Parameters.AddWithValue(@ LOCNAME,LOCNAME);
updCmd.Parameters.AddWithValue(@ Lamp_pro4,txt1.Text);
updCmd.Parameters.AddWithValue(@ Lamp_pro5,txt2.Text);
updCmd.Parameters.AddWithValue(@ AC_Profile5,txt3.Text);
updCmd.ExecuteNonQuery();
GridView2.DataBind(); }
1),必须先调用 GridView2.DataBind()
在治疗结束
保护无效GridView2_RowUpdating(对象发件人,GridViewUpdateEventArgs E)
{
// GridViewRow行=(GridViewRow)GridView2.Rows [e.RowIndex] 字符串LOCNAME = GridView2.DataKeys [e.RowIndex] .Values [位置]的ToString()。
文本框TXT1 =(文本框)GridView2.Rows [e.RowIndex] .FindControl(Lamp_pro4);
文本框TXT2 =(文本框)GridView2.Rows [e.RowIndex] .FindControl(Lamp_pro5);
文本框txt3 =(文本框)GridView2.Rows [e.RowIndex] .FindControl(AC_Profile5);
con.Open();
CMD的SqlCommand =新的SqlCommand(更新量设置Lamp_pro4 ='+ txt1.Text +',Lamp_pro5 ='+ txt2.Text +',AC_Profile5 ='+ txt3.Text +阿凡位置=+ LOCNAME,CON);
cmd.ExecuteNonQuery();
con.Close(); GridView2.EditIndex = -1;
// BindQuantity();
GridView2.DataBind();
}
2)定义更新命令
在的SqlDataSource
< ASP:SqlDataSource的ID =SqlDataSource1=服务器
的ConnectionString =下;%$的ConnectionStrings:TouchPadConnectionString%>中
的SelectCommand =SELECT * FROM [数量]
更新命令=更新量设置Lamp_pro4 = @ Lamp_pro4,Lamp_pro5 = @ Lamp_pro5,AC_Profile5 = @ AC_Profile5其中,位置= @位置>
< / ASP:SqlDataSource的>
链接:<一个href=\"http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.sqldatasource.updatecommand.aspx\" rel=\"nofollow\">http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.sqldatasource.updatecommand.aspx
I have a GridView
and it is bound to a database. I am finding difficulties in updating the GridView
and corresponding table in the database.
My asp code for GridView
after binding to SQLdatasource is :
<asp:GridView ID="GridView2" runat="server" OnRowEditing="GridView2_RowEditing"
OnRowUpdating="GridView2_RowUpdating" CellPadding="4" ForeColor="#333333" OnRowCancelingEdit="GridView2_RowCancelingEdit"
OnRowDataBound="GridView2_RowDataBound" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" AutoGenerateEditButton="True" DataKeyNames="Locations">
<Columns>
<asp:BoundField DataField="Locations" HeaderText="Locations"
SortExpression="Locations" ReadOnly="true"/>
<asp:BoundField DataField="Lamp_pro4" HeaderText="Lamp_pro4"
SortExpression="Lamp_pro4" />
<asp:BoundField DataField="Lamp_pro5" HeaderText="Lamp_pro5"
SortExpression="Lamp_pro5" />
<asp:BoundField DataField="AC_Profile5" HeaderText="AC_Profile5"
SortExpression="AC_Profile5" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:TouchPadConnectionString %>"
SelectCommand="SELECT * FROM [Quantity]">
</asp:SqlDataSource>
My datakey is Locations and its readonly.
The .cs code for updating is:
protected void GridView2_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=ARCHANA-PC\\ARCHANA;Initial Catalog=TouchPad;Integrated Security=True");
string LocName = GridView2.DataKeys[e.RowIndex].Values["Locations"].ToString();
TextBox txt1 = (TextBox)GridView2.Rows[e.RowIndex].FindControl("Lamp_pro4");
TextBox txt2 = (TextBox)GridView2.Rows[e.RowIndex].FindControl("Lamp_pro5");
TextBox txt3 = (TextBox)GridView2.Rows[e.RowIndex].FindControl("AC_Profile5");
string updStmt = "UPDATE Quantity set Lamp_pro4=@Lamp_pro4,Lamp_pro5=@Lamp_pro5,AC_Profile5=@AC_Profile5 where Locations=@locName";
con.Open();
SqlCommand updCmd = new SqlCommand(updStmt, con);
updCmd.Parameters.AddWithValue("@locName", LocName);
updCmd.Parameters.AddWithValue("@Lamp_pro4", txt1.Text);
updCmd.Parameters.AddWithValue("@Lamp_pro5", txt2.Text);
updCmd.Parameters.AddWithValue("@AC_Profile5", txt3.Text);
updCmd.ExecuteNonQuery();
GridView2.DataBind();
}
1) You must call GridView2.DataBind()
in the end of your treatment
protected void GridView2_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//GridViewRow row = (GridViewRow)GridView2.Rows[e.RowIndex];
string LocName = GridView2.DataKeys[e.RowIndex].Values["Locations"].ToString();
TextBox txt1 = (TextBox)GridView2.Rows[e.RowIndex].FindControl("Lamp_pro4");
TextBox txt2 = (TextBox)GridView2.Rows[e.RowIndex].FindControl("Lamp_pro5");
TextBox txt3 = (TextBox)GridView2.Rows[e.RowIndex].FindControl("AC_Profile5");
con.Open();
SqlCommand cmd = new SqlCommand("UPDATE Quantity set Lamp_pro4='" + txt1.Text + "',Lamp_pro5='" + txt2.Text + "',AC_Profile5='" + txt3.Text + "' where Locations=" + LocName, con);
cmd.ExecuteNonQuery();
con.Close();
GridView2.EditIndex = -1;
//BindQuantity();
GridView2.DataBind();
}
2) Define UpdateCommand
on your SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:TouchPadConnectionString %>"
SelectCommand="SELECT * FROM [Quantity]"
UpdateCommand="UPDATE Quantity set Lamp_pro4 = @Lamp_pro4 ,Lamp_pro5=@Lamp_pro5,AC_Profile5=@AC_Profile5 where Locations=@Locations">
</asp:SqlDataSource>
Link : http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.sqldatasource.updatecommand.aspx
这篇关于如何更新一个GridView使用绑定列时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!