'if you want to use a table or textboxes instead of a grid, you must tell C# to bind each textbox 'to the correct DB field. Private Sub frmCustom_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Step 1: fill our data adapter DA.Fill(DS, "Customers") 'Step 2: we have to tell C# where each textbox gets its data from. We bind each control to a DB field 'Here is the format for binding a control at run time: 'TEXTBOX.DataBindings.Add("Which Property?", DS.Tables(Name of Table"), "DB Field Name") txtLast.DataBindings.Add("Text", DS.Tables("Customers"), "LastName") txtFirst.DataBindings.Add("Text", DS.Tables("Customers"), "FirstName") txtMiddle.DataBindings.Add("Text", DS.Tables("Customers"), "MiddleInit") txtAddress.DataBindings.Add("Text", DS.Tables("Customers"), "StreetAddress") txtCity.DataBindings.Add("Text", DS.Tables("Customers"), "City") txtState.DataBindings.Add("Text", DS.Tables("Customers"), "State") txtZip.DataBindings.Add("Text", DS.Tables("Customers"), "Zip") txtTele.DataBindings.Add("Text", DS.Tables("Customers"), "Tele") txtFax.DataBindings.Add("Text", DS.Tables("Customers"), "Fax") txtAccount.DataBindings.Add("Text", DS.Tables("Customers"), "CustID") ReadDB() End Sub Private Sub ReadDB() strSQL = "SELECT * from Customers ORDER BY LastName" '---we use this to reload the DB to show all records. I call it after a search that returns 0 records. Fro example, ' they search for customers with last names of 'Z' and there aren't any. In that case, I want to start over and ' display all records DS.Clear() DA.Fill(DS, "Customers") '---move to first record btnFirst.PerformClick() DisplayCurrentRecord() End Sub Private Sub DisplayCurrentRecord() Dim intTotRecs As Integer '---get the total number of records in the DataSET intTotRecs = Me.BindingContext(DS.Tables("customers")).Count Dim intCurrentRecord As Integer '---get the current row in the DataSET intCurrentRecord = Me.BindingContext(DS.Tables("customers")).Position + 1 lblRecords.Text = "Account " & intCurrentRecord & " of " & intTotRecs End Sub Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click Me.BindingContext(DS.Tables("customers")).Position = 0 DisplayCurrentRecord() End Sub