Jim are you giving the ASPNET acct the right permissions?
Patrick
"Jim in Arizona" <tiltowait@hotmail.com> wrote in message
news:#a4VP2#$FHA.2708@TK2MSFTNGP12.phx.gbl...[color=blue]
>
> "Patrick.O.Ige" <naijacoder@hotmail.com> wrote in message
> news:%233g2Ax6$FHA.3928@tk2msftngp13.phx.gbl...[color=green]
> > Jim i blogged about that error at:-
> >
http://spaces.msn.com/members/naijacoder/
> > Look for the Error and read on.
> > Hope that helps
> > PAtrick
> >[/color]
>
> I remember having such issues when I was working with classic ASP and in
> most cases it was security permissions on the access DB. Because of that
> prior experience, I made sure to check the permissions before I posted and
> security permissions are full control for all auth users on our network,[/color]
and[color=blue]
> I'm an admin so have full control anyway. I double check again this[/color]
morning[color=blue]
> to make sure and I still get the same error. I'm at a loss.[color=green]
> > "Jim in Arizona" <tiltowait@hotmail.com> wrote in message
> > news:expPkN2$FHA.1312@TK2MSFTNGP09.phx.gbl...[color=darkred]
> >> I've been using an example out of a book to be able to edit the rows in[/color][/color][/color]
a[color=blue][color=green][color=darkred]
> >> database. I am getting the following error:
> >>
> >> ================================================== ======
> >> ================================================== ======
> >>
> >> Server Error in '/' Application.[/color][/color]
>[color=green]
>> -------------------------------------------------------------------------[/color][/color]
-[color=blue][color=green]
> > ------[color=darkred]
> >> Operation must use an updateable query.
> >> Description: An unhandled exception occurred during the execution of[/color][/color][/color]
the[color=blue][color=green][color=darkred]
> >> current web request. Please review the stack trace for more information
> >> about the error and where it originated in the code.
> >>
> >> Exception Details: System.Data.OleDb.OleDbException: Operation must use
> >> an
> >> updateable query.
> >>
> >> Source Error:
> >>
> >> Line 74:
> >> Line 75: objConnection.Open()
> >> Line 76: adapter.Update(ds, "TMaster")
> >> Line 77:
> >> Line 78: objConnection.Close()
> >>
> >> Source File: E:\hhsinternal\tests\editing\editing.aspx.vb Line: 76
> >>
> >> Stack Trace:
> >>
> >> [OleDbException (0x80004005): Operation must use an updateable query.]
> >>[/color]
> >[/color][/color]
System.Data.Common.DbDataAdapter.UpdatedRowStatusE rrors(RowUpdatedEventArgs[color=blue][color=green][color=darkred]
> >> rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
> >> +1303846
> >>[/color][/color][/color]
System.Data.Common.DbDataAdapter.UpdatedRowStatus( RowUpdatedEventArgs[color=blue][color=green][color=darkred]
> >> rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
> >> +46
> >> System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows,
> >> DataTableMapping tableMapping) +1750
> >> System.Data.Common.DbDataAdapter.UpdateFromDataTab le(DataTable[/color]
> > dataTable,[color=darkred]
> >> DataTableMapping tableMapping) +40
> >> System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String[/color]
> > srcTable)[color=darkred]
> >> +180
> >> tests_editing_editing.Update(Int32 PK, String FirstName) in
> >> E:\hhsinternal\tests\editing\editing.aspx.vb:76
> >> tests_editing_editing.UpdateRecord(Object Sender,
> >> DataGridCommandEventArgs E) in
> >> E:\hhsinternal\tests\editing\editing.aspx.vb:39
> >>[/color]
> >[/color][/color]
System.Web.UI.WebControls.DataGrid.OnUpdateCommand (DataGridCommandEventArgs[color=blue][color=green][color=darkred]
> >> e) +105
> >> System.Web.UI.WebControls.DataGrid.OnBubbleEvent(O bject source,[/color]
> > EventArgs[color=darkred]
> >> e) +679
> >> System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs[/color][/color][/color]
args)[color=blue][color=green]
> > +35[color=darkred]
> >> System.Web.UI.WebControls.DataGridItem.OnBubbleEve nt(Object source,
> >> EventArgs e) +117
> >> System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs[/color][/color][/color]
args)[color=blue][color=green]
> > +35[color=darkred]
> >> System.Web.UI.WebControls.LinkButton.OnCommand(Com mandEventArgs e)
> >> +115
> >> System.Web.UI.WebControls.LinkButton.RaisePostBack Event(String
> >> eventArgument) +134
> >>[/color]
> >[/color][/color]
System.Web.UI.WebControls.LinkButton.System.Web.UI .IPostBackEventHandler.Rai[color=blue][color=green]
> > sePostBackEvent(String[color=darkred]
> >> eventArgument) +7
> >> System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler
> >> sourceControl, String eventArgument) +11
> >> System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData)[/color]
> > +180[color=darkred]
> >> System.Web.UI.Page.ProcessRequestMain(Boolean
> >> includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
> >> +5670
> >>[/color][/color]
>[color=green]
>> -------------------------------------------------------------------------[/color][/color]
-[color=blue][color=green]
> > ------[color=darkred]
> >> Version Information: Microsoft .NET Framework Version:2.0.50215.44;[/color]
> > ASP.NET[color=darkred]
> >> Version:2.0.50215.44
> >>
> >> ================================================== ======
> >> ================================================== ======
> >>
> >> I can pretty much follow the code, but I don't understand what[/color][/color][/color]
updateably[color=blue][color=green][color=darkred]
> >> query it is referring to.
> >>
> >> Line 75: adapter.Update(ds, "TMaster")
> >>
> >> I have a single MS Access 2003 DB with a single table TMaster and Four
> >> columns (PK, FirstName, LastName, EmpID). I am only pulling the data[/color][/color][/color]
for[color=blue][color=green]
> > the[color=darkred]
> >> PK and FirstName for my testing purposes (See SQL Statement in code).
> >>
> >> This is my code (editing.aspx.vb), the first Imports statement starts[/color][/color][/color]
as[color=blue][color=green][color=darkred]
> >> Line 1. TIA, Jim
> >>
> >> Imports System.Data
> >> Imports System.Data.OleDb
> >>
> >> Partial Class tests_editing_editing
> >> Inherits System.Web.UI.Page
> >> Public Sub EditRecord(ByVal Sender As Object, ByVal E As
> >> DataGridCommandEventArgs)
> >> employees.EditItemIndex = E.Item.ItemIndex
> >> LoadGrid()
> >> End Sub
> >> Public Sub CancelRecord(ByVal Sender As Object, ByVal E As
> >> DataGridCommandEventArgs)
> >> employees.EditItemIndex = -1
> >> LoadGrid()
> >> End Sub
> >>
> >> Public Sub UpdateRecord(ByVal Sender As Object, ByVal E As
> >> DataGridCommandEventArgs)
> >> Dim objConnection As OleDbConnection
> >> Dim strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
> >> Source=e:\hhsinternal\tests\editing\editing.mdb"
> >>
> >> If objConnection Is Nothing Then
> >> objConnection = New OleDbConnection(strConnection)
> >> End If
> >>
> >> If objConnection.State = ConnectionState.Closed Then
> >> objConnection.Open()
> >> End If
> >> Dim strSQLSelect As String = "SELECT PK, FirstName FROM[/color][/color][/color]
TMaster"[color=blue][color=green][color=darkred]
> >>
> >> Dim adapter As New OleDbDataAdapter(strSQLSelect,[/color][/color][/color]
objConnection)[color=blue][color=green][color=darkred]
> >> Dim ds As New DataSet()
> >> adapter.Fill(ds, "TMaster")
> >> objConnection.Close()
> >>
> >> 'Retrieve the field values in the edited row
> >> Dim PK As Int32 = Convert.ToInt32(E.Item.Cells(0).Text)
> >> Dim FirstNameTextBox As TextBox =[/color]
> > CType(E.Item.Cells(1).Controls(0),[color=darkred]
> >> TextBox)
> >> Dim FirstName As String =[/color][/color][/color]
Convert.ToString(FirstNameTextBox.Text)[color=blue][color=green][color=darkred]
> >>
> >> employees.EditItemIndex = -1
> >> Update(PK, FirstName)
> >>
> >> employees.DataSource = ds.tables("TMaster")
> >> employees.DataBind()
> >>
> >> End Sub
> >>
> >> Public Sub Update(ByVal PK As Int32, ByVal FirstName As String)
> >> Dim objConnection As OleDbConnection
> >> Dim strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
> >> Source=e:\hhsinternal\tests\editing\editing.mdb"
> >>
> >> If objConnection Is Nothing Then
> >> objConnection = New OleDbConnection(strConnection)
> >> End If
> >>
> >> If objConnection.State = ConnectionState.Closed Then
> >> objConnection.Open()
> >> End If
> >> Dim strSQLSelect As String = "SELECT PK, FirstName FROM[/color][/color][/color]
TMaster"[color=blue][color=green][color=darkred]
> >>
> >> Dim adapter As New OleDbDataAdapter(strSQLSelect,[/color][/color][/color]
objConnection)[color=blue][color=green][color=darkred]
> >> Dim ds As New DataSet()
> >> adapter.Fill(ds, "TMaster")
> >> objConnection.Close()
> >>
> >>
> >> Dim tbl As DataTable = ds.Tables("TMaster")
> >> tbl.PrimaryKey = New DataColumn() _
> >> { _
> >> tbl.Columns("PK") _
> >> }
> >> Dim row As DataRow = tbl.Rows.Find(PK)
> >> row.Item("FirstName") = FirstName
> >>
> >> Dim cb As New OleDbCommandBuilder(adapter)
> >>
> >> objConnection.Open()
> >> adapter.Update(ds, "TMaster")
> >>
> >> objConnection.Close()
> >> End Sub
> >>
> >> Private Sub LoadGrid()
> >> Dim objConnection As OleDbConnection
> >> Dim strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
> >> Source=e:\hhsinternal\tests\editing\editing.mdb"
> >>
> >> If objConnection Is Nothing Then
> >> objConnection = New OleDbConnection(strConnection)
> >> End If
> >>
> >> If objConnection.State = ConnectionState.Closed Then
> >> objConnection.Open()
> >> End If
> >>
> >> Dim strSQLSelect As String = "SELECT PK, FirstName FROM[/color][/color][/color]
TMaster"[color=blue][color=green][color=darkred]
> >>
> >> Dim adapter As New OleDbDataAdapter(strSQLSelect,[/color][/color][/color]
objConnection)[color=blue][color=green][color=darkred]
> >> Dim ds As New DataSet()
> >> adapter.Fill(ds, "TMaster")
> >> objConnection.Close()
> >>
> >> With employees
> >> .DataSource = ds.Tables("TMaster")
> >> .DataBind()
> >> End With
> >>
> >> End Sub
> >>
> >> Protected Sub Page_Load(ByVal sender As Object, ByVal e As
> >> System.EventArgs) Handles Me.Load
> >> If Not Page.IsPostBack Then
> >> LoadGrid()
> >> End If
> >> End Sub
> >> End Class
> >>
> >> ===========================================
> >> ===========================================
> >> Below is the editing.aspx code if needed ..
> >> ===========================================
> >> ===========================================
> >>
> >> <%@ Page Language="VB" AutoEventWireup="false"[/color][/color][/color]
CodeFile="editing.aspx.vb"[color=blue][color=green][color=darkred]
> >> Inherits="tests_editing_editing" %>
> >>
> >> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> >> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> >>
> >> <html xmlns="http://www.w3.org/1999/xhtml" >
> >> <head runat="server">
> >> <title>Untitled Page</title>
> >> </head>
> >> <body>
> >> <form id="form1" runat="server">
> >> <div>
> >> <asp:DataGrid ID="employees" runat="server" CellPadding="5"
> >> AutoGenerateColumns="false" OnEditCommand="EditRecord"
> >> OnCancelCommand="CancelRecord"
> >> OnUpdateCommand="UpdateRecord">
> >> <Columns>
> >> <asp:BoundColumn DataField="PK" ReadOnly="true" Visible="false" />
> >> <asp:BoundColumn DataField="FirstName" HeaderText="First Name"
> >> ReadOnly="False" />
> >> <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Save"
> >> CancelText="Cancel" EditText="Edit" />
> >> </Columns>
> >> </asp:DataGrid>
> >> </div>
> >> </form>
> >> </body>
> >> </html>
> >>
> >>
> >>
> >>
> >>[/color]
> >
> >[/color]
>
>[/color]