在asp.net中,如何一次性更新datagrid中的所有记录呢?可以用如下的方法,首先,
要对DATAGRID中要更新的列建立模版列,比如:
asp:datagridid="dgPopularFAQs"runat="server"
AutoGenerateColumns="False"
...>
<Columns>
<asp:BoundColumnDataField="FAQID"ItemStyle-Width="10%"
ItemStyle-HorizontalAlign="Center"HeaderText="FAQID"/>
<asp:BoundColumnDataField="CategoryName"HeaderText="Category"/>
<asp:TemplateColumnHeaderText="Question">
<ItemTemplate>
<asp:TextBoxrunat="server"id="txtDescription"Columns="75"
Text='<%#Container.DataItem("Description")%>'/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumnHeaderText="SubmittedBy">
<ItemTemplate>
<asp:TextBoxrunat="server"id="txtSubmittedBy"
Text='<%#Container.DataItem("SubmittedByName")%>'/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
之后,对DATAGRID进行一次遍历,
DimmyConnectionasNewSqlConnection(connectionstring)
DimmyCommandasNewSqlCommand(strSQL,myConnection)
DimdgiasDataGridItem
ForEachdgiindgPopularFAQs.Items
'ReadinthePrimaryKeyField
DimidasInteger=Convert.ToInt32(dgPopularFAQs.DataKeys(dgi.ItemIndex))
DimquestionasString=CType(dgi.FindControl("txtDescription"),TextBox).Text
DimsubmittedByasString=CType(dgi.FindControl("txtSubmittedBy"),TextBox).Text
'IssueanUPDATEstatement...
DimupdateSQLasString="UPDATETableNameSETQuestion=@Question,"&_
"SubmittedByName=@SubmittedByNameWHEREFAQID=@ID"
myCommand.Parameters.Clear()
myCommand.Parameters.Add("@Question",question)
myCommand.Parameters.Add("@SubmittedByName",submittedBy)
myCommand.ExecuteNonQuery()
Next
(举报)