Solved

How do I update a sql database with data from a text box on a form?

Posted on 2008-10-12
7
406 Views
Last Modified: 2012-05-05
I'm new to VB.Net and I need to know how to insert a new record in a sql table from data in two text boxes on a form called txtFirstName and txtLastName. Also the sql table has a CustID field which is the index, it's not auto generated so I need to increment it by one when a record is inserted. Thank you for your help.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
 
        Dim dbConnection As New SqlConnection("Data Source=192.168.0.4,1433;Network Library=DBMSSOCN;Initial Catalog=TestData;User ID=sa;Password=password;")
 
        Dim queryString As String = "SELECT * FROM dbo.Patient"
 
        Dim dataAdapter As SqlDataAdapter = New SqlDataAdapter( _
          queryString, dbConnection)
 
        dbConnection.Open()
 
        Dim tblCustomer As DataSet = New DataSet
        dataAdapter.Fill(tblCustomer, "Customer")
 
        MISSING CODE GOES HERE
 
 
        dbConnection.Close()
 
 
 
 
    End Sub

Open in new window

0
Comment
Question by:rfgraham
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
7 Comments
 
LVL 4

Expert Comment

by:sijishJohn
ID: 22700292
use this to increment the CustID field

select Max(CustID)+1 from <tablename>

Refer this link

http://www.java2s.com/Code/ASP/ADO.net-Database/GenerateSQLinsertcommandVBnet.htm
0
 

Author Comment

by:rfgraham
ID: 22700389
sijishJohn,

I made a change in my sql db table to use Identity, which is for incrementing my ID field when a record is added.

I'm connecting to a sql db on another computer so I'm using:
"Imports System.Data.SqlClient" in the General Declarations of my code window.
0
 
LVL 48

Expert Comment

by:jpaulino
ID: 22700882
>>I made a change in my sql db table to use Identity, which is for incrementing my ID field when a record is added.

That way you only need to insert the fields ... don't use the CustID in the Transact SQL command.
The example that sijishJohn has showed you is for Access and for SQL is a little (no to much) different.
Check this example that I have posted:
http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_23349839.html 
0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 
LVL 4

Expert Comment

by:sijishJohn
ID: 22700904
Ok then this will be enough...
Dim conn As New SqlConnection("Data Source=192.168.0.4,1433;Network Library=DBMSSOCN;Initial Catalog=TestData;User ID=sa;Password=password;")
        conn.Open()
        Dim strSQL As String = "INSERT INTO <table name> (FirsName, LastName) VALUES (?, ?)"
 
        Dim dbComm As New SqlCommand(strSQL, conn)
        dbComm.Parameters.Add("FirstName", SqlDbType.VarChar)
        dbComm.Parameters.Add("LastName", SqlDbType.VarChar)
 
        dbComm.Parameters("FirstName").Value = txtFirstName.Text
        dbComm.Parameters("LastName").Value = txtLastName.Text
 
        dbComm.ExecuteNonQuery()
        conn.Close()

Open in new window

0
 
LVL 4

Accepted Solution

by:
sijishJohn earned 500 total points
ID: 22701051
Oops...
what jpaulino said was right..that was not the sql code..sorry to mislead you..

Dim conn As New SqlConnection("Data Source=192.168.0.4,1433;Network Library=DBMSSOCN;Initial Catalog=TestData;User ID=sa;Password=password;")
        conn.Open()
        Dim strSQL As String = "INSERT INTO <Your Table Name> (<Field1>, <field2>) VALUES (@First, @Last)"
 
        Dim dbComm As New SqlCommand(strSQL, conn)
        dbComm.Parameters.Add("@First", SqlDbType.VarChar)
        dbComm.Parameters.Add("@Last", SqlDbType.VarChar)
 
        dbComm.Parameters("@First").Value = txtFirstName.Text
        dbComm.Parameters("@Last").Value = txtLastName.Text
 
        dbComm.ExecuteNonQuery()
        conn.Close()

Open in new window

0
 

Author Comment

by:rfgraham
ID: 22749975
Thanks for you help but I have a related question, maybe you'll know the answer to this one.
http://www.experts-exchange.com/Programming/Languages/.NET/Q_23826936.html
0
 
LVL 48

Expert Comment

by:jpaulino
ID: 22749989
Did you looked to my example ? Maybe not!
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

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

Suggested Solutions

In this article we will get to know that how can we recover deleted data if it happens accidently. We really can recover deleted rows if we know the time when data is deleted by using the transaction log.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

738 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