Solved

How to update/records  table uisng OleDbCommand

Posted on 2009-03-31
13
739 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
 
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
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 

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

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
Introduction As chip makers focus on adding processor cores over increasing clock speed, developers need to utilize the features of modern CPUs.  One of the ways we can do this is by implementing parallel algorithms in our software.   One recent…
This video discusses moving either the default database or any database to a new volume.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

746 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now