delete a record and update the dataset

Please support our VB.NET advertiser: Intel Parallel Studio Home
Reply

Join Date: Jun 2006
Posts: 4
Reputation: caramia is an unknown quantity at this point 
Solved Threads: 0
caramia's Avatar
caramia caramia is offline Offline
Newbie Poster

delete a record and update the dataset

 
0
  #1
Jun 26th, 2006
Hi everyone,
I hope you can help me.

I am using vb.net and trying to delete a row in an access database. Firstly, I find the row and confirm there's record. If there's a record I ask for deletion. I am using the values submitted via a text box.

Here is my code:
Private Sub btnDeleteUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteUser.Click
Dim reponse_del As Integer
If txtSearch.Text = "" Then
MessageBox.Show("Please type a user name into the text box")
End If

'clear and refill Dataset
OleDAPass.SelectCommand.Parameters("UserName").Value = txtSearch.Text
DS_Pass1.Clear()
OleDAPass.Fill(DS_Pass1)
'no records of the search name
If DS_Pass1.Tables("PwordStore").Rows.Count = 0 Then
MessageBox.Show("Record not found")
ElseIf DS_Pass1.Tables("PwordStore").Rows.Count = 1 Then 'record exists delete it
MessageBox.Show("Are you sure you wish to delete this user?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
If reponse_del = DialogResult.Yes Then
OleDAPass.SelectCommand.Parameters ("UserName").Value = txtSearch.Text
'delete row
DS_Pass1.Tables("PwordStore").Rows(0).Delete()
OleDAPass.Update(DS_Pass1, "PwordStore")
End If
DS_Pass1.PwordStore.AcceptChanges()
DS_Pass1.Clear()
txtSearch.Text = ""
End If
End Sub

The record is found ok but the database does not update. I can update newly added records.
Does anyone know what I'm doing wrong? Any guidance will be very much appreciated :-|


Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 85
Reputation: williamrojas78 is an unknown quantity at this point 
Solved Threads: 4
williamrojas78's Avatar
williamrojas78 williamrojas78 is offline Offline
Junior Poster in Training

Re: delete a record and update the dataset

 
0
  #2
Jun 27th, 2006
Hi

There must be something wrong with the command that you are using to update the database.

Why don't you try creating a commandbuilder, it will create the commands automaticallly for you.

something like this:
  1.  
  2. If reponse_del = DialogResult.Yes Then
  3. OleDAPass.SelectCommand.Parameters ("UserName").Value = txtSearch.Text
  4. 'delete row
  5. DS_Pass1.Tables("PwordStore").Rows(0).Delete()
  6. Dim cmdbuilder As OleDbCommandBuilder = New oleDbCommandBuilder(OleDAPass)
  7. OleDAPass.update(DS_Pass1)
  8.  
  9. End If

hope it helps
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 4
Reputation: caramia is an unknown quantity at this point 
Solved Threads: 0
caramia's Avatar
caramia caramia is offline Offline
Newbie Poster

Re: delete a record and update the dataset

 
0
  #3
Jun 27th, 2006
Originally Posted by williamrojas78
Hi

There must be something wrong with the command that you are using to update the database.

Why don't you try creating a commandbuilder, it will create the commands automaticallly for you.

something like this:
  1.  
  2. If reponse_del = DialogResult.Yes Then
  3. OleDAPass.SelectCommand.Parameters ("UserName").Value = txtSearch.Text
  4. 'delete row
  5. DS_Pass1.Tables("PwordStore").Rows(0).Delete()
  6. Dim cmdbuilder As OleDbCommandBuilder = New oleDbCommandBuilder(OleDAPass)
  7. OleDAPass.update(DS_Pass1)
  8.  
  9. End If

hope it helps
Thanks for your advice William. I tried adding the commandbuilder as you suggested but it made no difference whatsoever. I have only one simple table in access and i used the wizard to create the Sql commands. the delete command i am using is DELETE FROM PwordStore WHERE (UserName = ? ). Anymore advice please?
Thanks in advance
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 85
Reputation: williamrojas78 is an unknown quantity at this point 
Solved Threads: 4
williamrojas78's Avatar
williamrojas78 williamrojas78 is offline Offline
Junior Poster in Training

Re: delete a record and update the dataset

 
0
  #4
Jun 27th, 2006
Hi

Try to enclose the database update in a try - catch statement and see exacly what the problem is.

Also try adding to the update statement the name of the table.

  1.  
  2. Try
  3. OleDAPass.update(DS_Pass1, "PwordStore")
  4. Catch x As Exception
  5. ' Error during Update, add code to locate error, reconcile
  6. ' and try to update again.
  7. End Try

other than that, I can not think of anything else, everything seems to be fine.
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 4
Reputation: caramia is an unknown quantity at this point 
Solved Threads: 0
caramia's Avatar
caramia caramia is offline Offline
Newbie Poster

Re: delete a record and update the dataset

 
0
  #5
Jun 27th, 2006
hi William
I tried your 'try catch' suggestion but it doesn't throw up any exceptions. The problem is the code runs and seems to be fine, it just doesn't update the database.
Thanks for your help, I guess I'm going to have to keep at it - unless anyone else can suggest something.
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 4
Reputation: caramia is an unknown quantity at this point 
Solved Threads: 0
caramia's Avatar
caramia caramia is offline Offline
Newbie Poster

Re: delete a record and update the dataset

 
0
  #6
Jun 28th, 2006
Hi again - I'm still stuck
i was wondering if my update statement could be wrong. It was generated by the access wizard :
UPDATE PwordStore SET UserName = ?, Pword = ? WHERE (PwordNo = ?) AND (Pword = ? OR ? IS NULL AND Pword IS NULL) AND (UserName = ? OR ? IS NULL AND UserName IS NULL)
It is also used to update the database when a new row is added and works fine for that. Does it need changing for the delete statement?
Please help me my deadline is getting very near.
Thanks
Last edited by caramia; Jun 28th, 2006 at 8:12 pm.
Reply With Quote Quick reply to this message  
Join Date: Jun 2005
Posts: 85
Reputation: williamrojas78 is an unknown quantity at this point 
Solved Threads: 4
williamrojas78's Avatar
williamrojas78 williamrojas78 is offline Offline
Junior Poster in Training

Re: delete a record and update the dataset

 
0
  #7
Jun 30th, 2006
Hi

The delete command and the update commad have to be different.
The delete command will be:

  1.  
  2. DELETE FROM Table_name WHERE ( ((? = 1 AND Rep IS NULL) OR (Rep = ?)) AND (ID = ?) AND ((? = 1 AND SN IS NULL) OR (SN = ?)) AND ((? = 1 AND Veh IS NULL) OR (Veh = ?)) AND ((? = 1 AND Hm IS NULL) OR (Hm = ?)) AND ((? = 1 AND Dt IS NULL) OR (Dt = ?)) )

This is what my command builder gives me to delete records from my table. My table has the fields Rep, ID, SN, etc.

Another thing. When you use the command builder, did you declare the variables for the oleDBdataadapter, oleDBconnection and oleDbcommand outside the procedure?


regards
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC