Solved

How to update/records  table uisng OleDbCommand

Posted on 2009-03-31
13
742 Views
Last Modified: 2012-05-06
Hello I'm trying to create a UPDATE function to update a Record and a DELETE Function using OleDbCommand to delete a record. Here is my code so far.
Thanks
my update function code is here
Private Sub UpdateData()
        Dim SchoolCode As String
        ' Fill Dataset and Get Data Table
 
        Dim DBName As String = Application.StartupPath & "\schools.mdb"
        'MsgBox(DBName)
        Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName & ";User ID=Admin;Password=")
        Dim Command As New OleDb.OleDbCommand("SELECT * FROM tblSchools", Connection)
 
       
        ' Update  the COMMENTS column in  the Tasks table
        OleDbCommand(" Update tblSchools(Comments) VALUES ('" & Comments.Text & "')")
 
 
 
 
        Catch ex As Exception
            MsgBox("Error running SQL Code", MsgBoxStyle.OkOnly, "ERROR: 132")
        Finally
            Connection.Close()
        End Try
 
 
 
    End Sub
 
Private Sub DeleteData()
        Dim SchoolCode As String
        ' Fill Dataset and Get Data Table
 
        Dim DBName As String = Application.StartupPath & "\schools.mdb"
        'MsgBox(DBName)
        Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName & ";User ID=Admin;Password=")
        Dim Command As New OleDb.OleDbCommand("SELECT * FROM tblSchools", Connection)
 
       
        'Delete a record in  the Tasks table
        OleDbCommand(" Delete * from tblSchool WHERE LIKE "SchoolCode" = txtSearch.Text & "')")
 
 
 
 
        Catch ex As Exception
            MsgBox("Error running SQL Code", MsgBoxStyle.OkOnly, "ERROR: 132")
        Finally
            Connection.Close()
        End Try
 
 
 
    End Sub

Open in new window

0
Comment
Question by:cybecks
  • 6
  • 6
13 Comments
 
LVL 48

Expert Comment

by:jpaulino
ID: 24030773
You don't need to select and then update or delete, you just have to do an executenonquery
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.executenonquery.aspx 
0
 
LVL 83

Assisted Solution

by:CodeCruiser
CodeCruiser earned 50 total points
ID: 24037196
Try the following code.
Remember to add a where clause to the update command where i have added ???
my update function code is here
Private Sub UpdateData()
  Dim SchoolCode As String
  Dim DBName As String = Application.StartupPath & "\schools.mdb"
  Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName & ";User ID=Admin;Password=")
  Dim Command As New OleDb.OleDbCommand
 try       
  command.connection = connection
  command.commandtext = " Update tblSchools set Comments='" & Comments.Text & "' Where ???"
 Catch ex As Exception
  MsgBox("Error running SQL Code", MsgBoxStyle.OkOnly, "ERROR: 132")
 Finally
  Connection.Close()
 End Try
End Sub
 
Private Sub DeleteData()
  Dim SchoolCode As String
  Dim DBName As String = Application.StartupPath & "\schools.mdb"
  Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName & ";User ID=Admin;Password=")
  Dim Command As New OleDb.OleDbCommand
  command.connection = connection
 try      
  'Delete a record in  the Tasks table
  command.Commandtext = "Delete * from tblSchool WHERE [" & SchoolCode & "] = '" & txtSearch.Text & "'"
 Catch ex As Exception
  MsgBox("Error running SQL Code", MsgBoxStyle.OkOnly, "ERROR: 132")
 Finally
  Connection.Close()
 End Try
End Sub

Open in new window

0
 

Author Comment

by:cybecks
ID: 24041424
hello CodeCruiser:
Well I got my delete to work but unable to get the Update to work.  I tried your code for update and well I updated every record in the table.  I only want to uptate a few fields like the Sch Comments  field in the table .lucky for me Im working on a test copy.
any how her is my code for the update


Private Sub UpdateData()

        Dim DBName As String = Application.StartupPath & "\schools.mdb"
        Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName & ";User ID=Admin;Password=")
        Dim cmd As New OleDb.OleDbCommand("UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & " 'WHERE txtComments.text  = '" & txtComments.Text.ToString() & "'", Connection)
     
          Connection.Open()

        Try
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            MsgBox("Error running SQL Code", MsgBoxStyle.OkOnly, "ERROR: 132")
        Finally

        End Try
        Connection.Close()
        txtComments.Text = ""


    End Sub
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
LVL 48

Expert Comment

by:jpaulino
ID: 24041518
What error do you have ?
Try to change to this T-SQL command

Dim cmd As New OleDb.OleDbCommand("UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & "' WHERE txtComments.text  = '" & txtComments.Text.ToString() & "'", Connection)

Open in new window

0
 

Author Comment

by:cybecks
ID: 24041689
when I run the code i get the Error running SQL Code
0
 
LVL 48

Assisted Solution

by:jpaulino
jpaulino earned 450 total points
ID: 24041743
>> when I run the code i get the Error running SQL Code
That's your custom message. Change the msgbox to:
MsgBox(ex.Message, MsgBoxStyle.OkOnly, "ERROR: 132")
 
0
 

Author Comment

by:cybecks
ID: 24041986
I get the following error message
error message is NO value given for one or more required parameters
0
 

Author Comment

by:cybecks
ID: 24042009
[Sch Comments] is a field in my table
txtComments.Text is my input text field on my form.

does this help
0
 
LVL 48

Expert Comment

by:jpaulino
ID: 24042060
You have the SQL statement wrong !
"UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & "' WHERE txtComments.text  = '" & txtComments.Text.ToString() & "'"
 
"WHERE txtComments.text  "
should be
"WHERE YourFieldName "
0
 

Author Comment

by:cybecks
ID: 24042201
When I changed the statement to
Dim cmd As New OleDb.OleDbCommand("UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & " 'WHERE [Sch Comments]  = '" & txtComments.Text.ToString() & "'", Connection)

It does not add update any data in the table but I don't get any errors.
0
 
LVL 48

Accepted Solution

by:
jpaulino earned 450 total points
ID: 24042243
Don't you have an ID ? That way you're trying to update a field based on the new value (that doesn't exist in the database.
You should use an unique identifier like this:
UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & "' WHERE ID  = "  & ItemID
If you want to change ALL you can do:
UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & "'"
0
 

Author Comment

by:cybecks
ID: 24042580
Thanks you have been GREAT. I updated my code to :

Dim cmd As New OleDb.OleDbCommand("UPDATE tblSchools SET [Sch Comments]= '" & txtComments.Text & "'WHERE [strCd]  = '" & txtSCode.Text & "'", Connection)
        works fine now...


0
 
LVL 48

Expert Comment

by:jpaulino
ID: 24042760
Glad I could help!
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Since .Net 2.0, Visual Basic has made it easy to create a splash screen and set it via the "Splash Screen" drop down in the Project Properties.  A splash screen set in this manner is automatically created, displayed and closed by the framework itsel…
1.0 - Introduction Converting Visual Basic 6.0 (VB6) to Visual Basic 2008+ (VB.NET). If ever there was a subject full of murkiness and bad decisions, it is this one!   The first problem seems to be that people considering this task of converting…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question