|          
在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 DataGridItemFor 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
 
 |