DataGrid9.aspx 
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %><html><head>
<script language="VB" runat="server">    Dim MyConnection As SqlConnection
    Public StateIndex As Hashtable    Sub Page_Load(Src As Object, E As EventArgs)        MyConnection = New SqlConnection("server=(local)\NetSDK;database=pubs;Trusted_Connection=yes")        If Not (IsPostBack)
            BindGrid()
        End If        StateIndex = New Hashtable()
        StateIndex("CA") = 0
        StateIndex("IN") = 1
        StateIndex("KS") = 2
        StateIndex("MD") = 3
        StateIndex("MI") = 4
        StateIndex("OR") = 5
        StateIndex("TN") = 6
        StateIndex("UT") = 7
    End Sub    Sub MyDataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs)        MyDataGrid.EditItemIndex = CInt(E.Item.ItemIndex)
        BindGrid()
    End Sub    Sub MyDataGrid_Cancel(Sender As Object, E As DataGridCommandEventArgs)        MyDataGrid.EditItemIndex = -1
        BindGrid()
    End Sub    Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)        If (Page.IsValid)
            Dim DS As DataSet
            Dim MyCommand As SqlCommand            Dim UpdateCmd As String = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = " _
                & " @Phone, address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id"            MyCommand = New SqlCommand(UpdateCmd, MyConnection)            MyCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.NVarChar, 11))
            MyCommand.Parameters.Add(New SqlParameter("@LName", SqlDbType.NVarChar, 40))
            MyCommand.Parameters.Add(New SqlParameter("@FName", SqlDbType.NVarChar, 20))
            MyCommand.Parameters.Add(New SqlParameter("@Phone", SqlDbType.NChar, 12))
            MyCommand.Parameters.Add(New SqlParameter("@Address", SqlDbType.NVarChar, 40))
            MyCommand.Parameters.Add(New SqlParameter("@City", SqlDbType.NVarChar, 20))
            MyCommand.Parameters.Add(New SqlParameter("@State", SqlDbType.NChar, 2))
            MyCommand.Parameters.Add(New SqlParameter("@Zip", SqlDbType.NChar, 5))
            MyCommand.Parameters.Add(New SqlParameter("@Contract", SqlDbType.NVarChar,1))            MyCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))            Dim Cols As String() = {"LName","FName","Phone","Address","City","Zip"}            Dim I As Integer
            For I = 0 To 5
                Dim CurrentTextBox As TextBox
                CurrentTextBox = E.Item.FindControl("edit_" & Cols(I))
                Dim ColValue As String = CurrentTextBox.Text
                MyCommand.Parameters("@" & Cols(I)).Value = ColValue
            Next            Dim StateDropDownList As DropDownList
            StateDropDownList = E.Item.FindControl("edit_State")
            MyCommand.Parameters("@State").Value = StateDropDownList.SelectedItem.ToString()            Dim ContractCheckBox As CheckBox
            ContractCheckBox = E.Item.FindControl("edit_Contract")            If ContractCheckBox.Checked = true
                MyCommand.Parameters("@Contract").Value = "1"
            Else
                MyCommand.Parameters("@Contract").Value = "0"
            End If            MyCommand.Connection.Open()            Try
                MyCommand.ExecuteNonQuery()
                Message.InnerHtml = "<b>已更新记录</b><br>" & UpdateCmd
                MyDataGrid.EditItemIndex = -1
            Catch Exp As SqlException
                If Exp.Number = 2627
                    Message.InnerHtml = "错误:已存在具有相同主键的记录"
                Else
                    Message.InnerHtml = "错误:未能更新记录,请确保正确填写了字段"
                End If
                Message.Style("color") = "red"
            End Try            MyCommand.Connection.Close()            BindGrid()
        Else
            Message.InnerHtml = "错误:请检查每个字段中的错误情况。"
            Message.Style("color") = "red"
        End If
    End Sub    Sub BindGrid()        Dim DS As DataSet
        Dim MyCommand As SqlDataAdapter
        MyCommand = new SqlDataAdapter("select * from Authors", MyConnection)        DS = new DataSet()
        MyCommand.Fill(DS, "Authors")        MyDataGrid.DataSource=DS.Tables("Authors").DefaultView
        MyDataGrid.DataBind()
    End Sub</script>
</head>