![]() |
|
|||||||
| Data Access VB.NET development for data access and back-end related areas |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|||
|
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
|
|
||||
|
If the application crashes then you'd be given an error message. Please give it to us.
__________________
Essential: Multiple Forms ● 101 Samples: 2002 | 2003 | 2005 ● Free Components: WFC | XPCC | ElementsEx | VBPP | ADO.NET/MySQL | VisualStyles | NPlot | SDF ● Tutorials: Home & Learn | Start VB.NET | Learn VB.NET ● Favourites: MSDN | WinForms.NET | ASP.NET | WinForms FAQ | WebForms FAQ | GotDotNet | Code Project | DevBuzz |
|
|||
|
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 |
|
|||
|
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) |
|
||||
|
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"
__________________
"it's a fax from your dog, Mr Dansworth. It looks like your cat" - Gary Larson...DW1: Data Walkthroughs 1.1...DW2: Data Walkthroughs 2.0...DDS: The DataSet Designer Surface...ANO: ADO.NET2 Orientation...DAN: Deeper ADO.NET...DNU...PQ |
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|