We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Problem Updating a Database

Medium Priority
375 Views
Last Modified: 2013-12-25
I am having a problem updating information to a MS Access Database.

Before i code this much more, i simply have a link to a MS Access Database, a DataGridView, a TextBox, and a Button on Form1.

The database is linked and when running the program it pulls the columns from the database and populates the DataViewGrid. This DataViewGrid will not allow changes, i want the changes to occur in textboxs and that information then updated back to the database.

i am able to make the DataGridView change with the updated information from Textbox1, however that information is not being written back to the actual database and i can't seem to figure out why..

The code below is my source code for all of Form1, and Button1_Click.
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'CsvFileDS.CSVFILE' table. You can move, or remove it, as needed.
        Me.CSVFILETableAdapter.Fill(Me.CsvFileDS.CSVFILE)
 
    End Sub
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim TempTable As DataTable = CsvFileDS.Tables("CSVFILE")
        Dim NewEntry As DataRow = TempTable.NewRow
 
        NewEntry("DOS") = TextBox1.Text
 
        TempTable.Rows.Add(NewEntry)
 
    End Sub
End Class

Open in new window

Comment
Watch Question

Ark
CERTIFIED EXPERT

Commented:
Me.CSVFILETableAdapter.Update(YourDataSetNameHere)

Author

Commented:
OK, that worked and i was able to update the information in the database, but now i have another problem... "NullReferenceException was unhandled", "Object reference not set to an instance of an object"

        Dim TempTable As DataTable = Database1DataSet.Tables("CsvFile")
        Dim NewEntry As DataRow = TempTable.NewRow '<--ERROR IS HERE
 
        NewEntry("DOS") = "2009-07-08"
        NewEntry("LOS") = "BLS"
        NewEntry("PTNAME") = "DOE, JOHN"
 
        TempTable.Rows.Add(NewEntry)
 
        CsvTableTableAdapter.Update(Database1DataSet.CsvTable)

Open in new window

CERTIFIED EXPERT
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
Your Solution worked prefectly!

I will update the "Accept Solutions" shortly,

If you able to, i am also in need of a few other specifics with this same database.
1. Update an existing row/cell in the row
2. Delete the row

Your help is greatly appreciated, i havent worked with programming in many years and so much of the  syntax and funcations have changed. Last time i worked with programming, the database interface was "recordset..." VB '97
 
Thank you very much
Ark
CERTIFIED EXPERT

Commented:
Hi
The .net database approach is slightly different then old VB. Then main idea is:
1. Connect to database, get info (TableAdapter(s).Fill), disconnect
2. Working with dataset (like database mirror) - adding new records, modifying, deleting in memory
3. Finally - connect to database again, update changes (tableAdapter(s).Update), disconnect.
    3.1 Dataset.GetChanges gives changed records
    3.2 Dataset.AcceptChanges marks those records as unchanged to repeat 2-3 steps

So, if using BindingSourse(s):
1. Connect to DB (Fill adapters)
2. set bindingsource(s) DataSource(=DataSet) and DatatMember(s)(=TableName(s))
3. Work wit bindingsourse(s)
   3.1. Navigate: bs.Position=bs.Find("LOS","BLS")
   3.2 Add New (see my previous post)
   3.3 Change Cells: bs("PTNAME")="whatever", bs("otherColumn") = "newString"
   3.4 Delete bs.DeleteCurrent (or bs.Delete(bs(bs.Find("LOS","BLS")))
   3.4. Accept (bs.EndEdit)  or discard (bs.CancelEdit) in-memory changes
4. Update DataBase (TableAdapter.Update)
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.