Visual Basic .NET Forums  
Click here to advertise with us

Go Back   Visual Basic .NET Forums > Database > Database General Discussion

Database General Discussion General discussion on database related topics

VB.NET Forums Newsletter Signup:
Email address:


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 10-10-2008, 4:01 AM
VB.NET Forum Newbie
.NET Framework: .NET 3.5 (VS 2008)
 
Join Date: Oct 2008
Age: 31
Posts: 2
Reputation: 0
Coisox is on a distinguished programming path ahead
Default Add, Update, Delete, Prev, Next - program crash

I try a simple MS Access database apps.



Each button (or function) works perfectly by themselves. Which means, if I click the ADD button and exit the application, then open the database through MS Access, the new record is perfectly added.

But if I click Add, then immediately click the Delete button, the application crash. If I click the Add, then exit application, then run the application again, then click the Delete button, works perfectly.

Here's my code:
Or you can download the project here.

Code:
Public Class Form1
    Public cnADONetConnection As New OleDb.OleDbConnection()
    Public dataAdapter As OleDb.OleDbDataAdapter
    Public commandBuilder As OleDb.OleDbCommandBuilder
    Public dataTable As New DataTable

    Dim m_rowPosition As Integer = 0

    Private Sub ShowCurrentRecord()
        If dataTable.Rows.Count = 0 Then
            TextBox1.Text = ""
            Exit Sub
        End If

        TextBox1.Text = dataTable.Rows(m_rowPosition)("nama").ToString()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cnADONetConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db1.mdb"
        cnADONetConnection.Open()
        dataAdapter = New OleDb.OleDbDataAdapter("Select * From Table1", cnADONetConnection)
        commandBuilder = New OleDb.OleDbCommandBuilder(dataAdapter)
        dataAdapter.Fill(dataTable)

        ShowCurrentRecord()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If m_rowPosition > 0 Then
            m_rowPosition = m_rowPosition - 1
            Me.ShowCurrentRecord()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If m_rowPosition < (dataTable.Rows.Count - 1) Then
            m_rowPosition = m_rowPosition + 1
            Me.ShowCurrentRecord()
        End If
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        If dataTable.Rows.Count <> 0 Then
            dataTable.Rows(m_rowPosition)("nama") = TextBox1.Text
            dataAdapter.Update(dataTable)
        End If
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim drNewRow As DataRow = dataTable.NewRow()
        drNewRow("nama") = TextBox1.Text
        dataTable.Rows.Add(drNewRow)
        dataAdapter.Update(dataTable)
        m_rowPosition = dataTable.Rows.Count - 1
        Me.ShowCurrentRecord()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        If dataTable.Rows.Count <> 0 Then
            dataTable.Rows(m_rowPosition).Delete()
            dataAdapter.Update(dataTable)
            m_rowPosition = 0
            Me.ShowCurrentRecord()
        End If
    End Sub
End Class
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 10-13-2008, 8:23 AM
jmcilhinney's Avatar
VB.NET Forum Moderator
.NET Framework: .NET 3.5 (VS 2008)
 
Join Date: Aug 2004
Location: Sydney, Australia
Age: 40
Posts: 6,126
Reputation: 542
jmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalistjmcilhinney VB.NET gold medalist
Default

If the application crashes then you'd be given an error message. Please give it to us.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 10-13-2008, 9:06 AM
VB.NET Forum Newbie
.NET Framework: .NET 3.0 (VS 2005/2008)
 
Join Date: Oct 2008
Age: 36
Posts: 8
Reputation: 0
avile22 is on a distinguished programming path ahead
Default

Its the famous concurrency violation. This drove me nuts awhile back and I'll be back from work by noon to dig up my old code.

I believe its something to do with the Primary Key in MS Access
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 10-13-2008, 1:40 PM
VB.NET Forum Newbie
.NET Framework: .NET 3.5 (VS 2008)
 
Join Date: Oct 2008
Age: 31
Posts: 2
Reputation: 0
Coisox is on a distinguished programming path ahead
Default

Here's the error message.



Currently, what I do to solve this problem is:

dataAdapter.Update(dataTable)
dataTable.Clear()
redo the SQL query
redo commandBuilder
dataAdapter.Fill(dataTable)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 10-20-2008, 11:13 AM
cjard's Avatar
VB.NET Forum All-Mighty
.NET Framework: .NET 2.0 (VS 2005)
 
Join Date: Apr 2006
Age: 65
Posts: 6,442
Reputation: 807
cjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond reputecjard has a reputation beyond repute
Default

For info on how you ought to be doing your data access, read the DW2 link in my signature (and keep an eye out for pages that are .net 3.5 enhanced)

Start with the section "Creating a Simple Data App"
__________________
DW1 DW2 DW3 DW4 DNU PQ
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On





All times are GMT -4. The time now is 7:21 AM.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2


For advertising opportunities click here.