Solved

How to update/records  table uisng OleDbCommand

Posted on 2009-03-31
13
741 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
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
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

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Help with Syntax 9 37
.NET tools for adding thread safety to a web app? 3 35
VB.Net - TypeInitializer Error 25 28
vb.net winforms sizing/resolution? 4 34
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…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

810 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