错误如下图:

[img]http://baby.vip.nease.net/1.jpg[/img]



源文件,,,数据库就是范例数据库
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Page Language="VB"Debug="true" %>
<script language="VB" runat="server">

  Sub Page_Load(Sender As Object, E As EventArgs)

    Dim strConnection As String
    Dim strSQL        As String
    Dim objDataSet    As New DataSet()
    Dim objConnection As OleDbConnection
    Dim objAdapter    As OleDbDataAdapter

    ' set the connection and query details
    strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
                    "Data Source=C:\5040\r\Ch13\Northwind.mdb"
    strSQL = "SELECT EmployeeID, FirstName, LastName FROM Employees;"

    ' open the connection and set the command
    objConnection = New OledbConnection(strConnection)
    objAdapter = New OledbDataAdapter(strSQL, objConnection)

    ' fill the dataset with the data
    objAdapter.Fill(objDataSet, "Employees")

    ' bind the data grid to the data
    dgNameList1.DataSource = objDataSet.Tables("Employees").DefaultView
    dgNameList1.DataBind()
' -----------------------------------------------------------------
    ' add a new row to the table
    Dim objTable  As DataTable
    Dim objNewRow As DataRow
  
    objTable = objDataSet.Tables("Employees")
    objNewRow = objTable.NewRow()
    objNewRow("FirstName") = "Norman"
    objNewRow("LastName") = "Blake"
    objTable.Rows.Add(objNewRow)
    
    ' add another new row. We'll be deleting the one above later.
    ' we can't delete existing rows from the database because of
    ' referential integrity (every employee also has Orders)
    objNewRow = objTable.NewRow()
    objNewRow("FirstName") = "Kasey"
    objNewRow("LastName") = "Chambers"
    objTable.Rows.Add(objNewRow)


    ' bind the data grid to the new data
    dgNameList2.DataSource = objTable.DefaultView
    dgNameList2.DataBind()


    ' -----------------------------------------------------------------
    ' edit an existing row in the table
    Dim objRow As DataRow
    
    ' The Rows collection is 0 indexed, so this changes the fourth row
    objRow = objTable.Rows(3)
    objRow("FirstName") = "John"
    objRow("LastName") = "Hartford"

    ' bind the data grid to the new data
    dgNameList3.DataSource = objTable.DefaultView
    dgNameList3.DataBind()


    ' -----------------------------------------------------------------
    ' delete a row from the table

    ' The Rows collection is 0 indexed, so this removes the sixth row
    objTable.Rows(objTable.Rows.Count - 2).Delete()
    
    ' bind the data grid to the new data
    dgNameList4.DataSource = objTable.DefaultView
    dgNameList4.DataBind()


    ' =================================================================
    ' generate the update commands
    Dim objBuilder    As OleDbCommandBuilder

        objBuilder = New OleDbCommandBuilder(objAdapter)
        objAdapter.UpdateCommand = objBuilder.GetUpdateCommand()
        objAdapter.InsertCommand = objBuilder.GetInsertCommand()
        objAdapter.DeleteCommand = objBuilder.GetDeleteCommand()


    ' =================================================================
        ' update the data store
        objAdapter.Update(objDataSet, "Employees")
    
    
    ' =================================================================
    ' refresh the data in the DataReader and bind it to a new grid
    ' to prove that the data store has been updated

    strSQL = "SELECT EmployeeID, FirstName, LastName FROM Employees"
    objConnection.Open()
    Dim objCmd As New OleDbCommand(strSQL, objConnection)
    dgUpd.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection)
    dgUpd.DataBind()
  
  End Sub

</script>
<html>
<body>
  <table width="100%">
   <tr>
    <td>Original Data</td>
    <td>Data with new Row</td>
    <td>Data with edited Row</td>
    <td>Data with deleted Row</td>
   </tr>
   <tr>
    <td valign="top"><asp:DataGrid id="dgNameList1" runat="server" /></td>
    <td valign="top"><asp:DataGrid id="dgNameList2" runat="server" /></td>
    <td valign="top"><asp:DataGrid id="dgNameList3" runat="server" /></td>
    <td valign="top"><asp:DataGrid id="dgNameList4" runat="server" /></td>
   </tr>
  </table>
  
  <hr />
  
  Data fetched from database after the update:<br/>
  
  <asp:DataGrid id="dgUpd" runat="server"/>
  
</body>
</html>