asp.net 中一次性更新DATAGRID中所有记录

发表于:2007-06-30来源:作者:点击数: 标签:
在asp .net 中,如何一次性更新datagrid中的所有记录呢?可以用如下的方法,首先, 要对DATAGRID中要更新的列建立模版列,比如: asp:datagrid id=dgPopularFAQs runat=server AutoGenerateColumns=False ... Columns asp:BoundColumn DataField=FAQID ItemSt
在asp.net中,如何一次性更新datagrid中的所有记录呢?可以用如下的方法,首先,
要对DATAGRID中要更新的列建立模版列,比如:
asp:datagrid id="dgPopularFAQs" runat="server"
AutoGenerateColumns="False"
...>

<Columns>
<asp:BoundColumn DataField="FAQID" ItemStyle-Width="10%"
ItemStyle-HorizontalAlign="Center" HeaderText="FAQ ID" />

<asp:BoundColumn DataField="CategoryName" HeaderText="Category" />

<asp:TemplateColumn HeaderText="Question">
<ItemTemplate>
<asp:TextBox runat="server" id="txtDescription" Columns="75"
Text=@#<%# Container.DataItem("Description") %>@# />
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="Submitted By">
<ItemTemplate>
<asp:TextBox runat="server" id="txtSubmittedBy"
Text=@#<%# Container.DataItem("SubmittedByName") %>@# />
</ItemTemplate>
</asp:TemplateColumn>

</Columns>
</asp:datagrid>
之后,对DATAGRID进行一次遍历,
Dim myConnection as New SqlConnection(connection string)
Dim myCommand as New SqlCommand(strSQL, myConnection)

Dim dgi as DataGridItem
For Each dgi in dgPopularFAQs.Items
@#Read in the Primary Key Field
Dim id as Integer = Convert.ToInt32(dgPopularFAQs.DataKeys(dgi.ItemIndex))
Dim question as String = CType(dgi.FindControl("txtDescription"), TextBox).Text
Dim submittedBy as String = CType(dgi.FindControl("txtSubmittedBy"), TextBox).Text

@#Issue an UPDATE statement...
Dim updateSQL as String = "UPDATE TableName SET Question = @Question, " & _
"SubmittedByName = @SubmittedByName WHERE FAQID = @ID"
myCommand.Parameters.Clear()
myCommand.Parameters.Add("@Question", question)
myCommand.Parameters.Add("@SubmittedByName", submittedBy)

myCommand.ExecuteNonQuery()
Next

原文转自:http://www.ltesting.net