使用模板列
//.aspx文件
<asp:DataGrid id="DataGrid1" runat="Server">
  <Columns>
    <asp:TemplateColumn HeaderText = "编号">
      <ItemTemplate>
        <asp:Label id="id" Text='<%# Container.DataItem("id")%>' runat="Server"/>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText = "内容">
      <ItemTemplate>
        <asp:TextBox id="Content" Text='<%# Container.DataItem("Content")%>' runat="Server"/>
      </ItemTemplate>
    </asp:TemplateColumn>
  </Columns>//更新事件
DataGridItem x;
string getId;
string getStr;
OleDbCommand Cmd;
foreach(x in DataGrid1.Items) //遍历整个DataGrid
{
   getId = (Label)e.FindControl("id").Text; //取得当前行ID值
   getStr = (TextBox)e.FindControl("Content").Text; //取得当前行Content值
   Cmd = new OleDbCommand("update table set Content='" & getStr & "'",Conn) //根据ID更新
   Cmd.ExecuteNonQuery();
}

解决方案 »

  1.   

    方法1:
     Public Sub ExecTans(ByVal sqlStrList As String())
            Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\UserLog.mdb")
            Dim trans As OleDb.OleDbTransaction = Nothing
            Try
                If (conn.State = ConnectionState.Closed) Then
                    conn.Open()
                End If
                Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand()
                cmd.Connection = conn
                cmd.CommandType = CommandType.Text
                trans = conn.BeginTransaction
                cmd.Transaction = trans
                Dim i As Integer
                For i = 0 To sqlStrList.GetUpperBound(0)
                    cmd.CommandText = sqlStrList(i)
                    cmd.ExecuteNonQuery()
                Next
                trans.Commit()
            Catch ex As OleDb.OleDbException
                trans.Rollback()
                Throw (New Exception(ex.Message))
            Finally
                conn.Close()
            End Try
        End Sub
        Public Sub Insert()
            Dim dt As DataTable = New DataTable()
            Dim dr As DataRow
            dt.Columns.Add(New DataColumn("name"))
            Dim j As Integer
            For j = 1 To 10
                dr = dt.NewRow()
                dr(0) = "name" + j.ToString()
                dt.Rows.Add(dr)
            Next
            DataGrid2.DataSource = dt
            DataGrid2.DataBind()
            Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\UserLog.mdb")
            conn.Open()
            Dim myAdapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter()
            Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("Insert into mm (name) values (@name)", conn)
            cmd.Parameters.Add("@name", "name")
            cmd.Parameters.Item("@name").SourceColumn = dt.Columns("name").ColumnName
            myAdapter.InsertCommand = cmd
            myAdapter.Update(dt)
            conn.Close()
        End Sub    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim s As String() = New String(11) {}        s(0) = "Insert into mm (name) values('1')"
            s(1) = "Insert into mm (name) values('1')"
            s(2) = "Insert into mm (name) values('2')"
            s(3) = "Insert into mm (name) values('3')"
            s(4) = "Insert into mm (name) values('4')"
            s(5) = "Insert into mm (name) values('5')"
            s(6) = "Insert into mm (name) values('6')"
            s(7) = "Insert into mm (name) values('7')"
            s(8) = "Insert into mm (name) values('8')"
            s(9) = "Insert into mm (name) values('9')"
            s(10) = "Insert into mm (name) values('10')"
            s(11) = "Insert into mm (name) values('11')"        ExecTans(s)
        End Sub
      

  2.   

    那怎么把事务加进去,我希望在FOR循环中有一次UPDATE出错都ROLL BACK
      

  3.   

    上边的:
    Public Sub Insert()
                 
    End Sub为方法2