Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

INSERT INTO Clause problem

Status
Not open for further replies.

ajclifford

Programmer
Jan 16, 2005
17
AU
Hi,

I have a function for inserting new data into a table but I'm receiving the following error:

Code:
Server Error in '/Contractors' Application.
Insert Error: Column name or number of supplied values does not match table definition.
Description: An unhandled exception occurred during the execution of the current web 
request. Please review the stack trace for more information about the error and where 
it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Insert Error: Column 
name or number of supplied values does not match table definition.

Source Error:

An unhandled exception was generated during the execution of the current web request. 
Information regarding the origin and location of the exception can be identified using 
the exception stack trace below.

The table conists of the following columns, they are all type char, expect ID is type int:
ID
VendorNo
DateIssued
FirstName
Surname
ContactNumber
Address

I'm not completely sure if I'm supposed to use the Param's for INSERT INTO clause, but here is the function I'm calling thats causing the error:

Code:
Private Sub cmdAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAdd.Click
    'Save the values from the details fields to the database
    conn.Open()
    Try
        Dim updAdd As SqlCommand = New SqlCommand("INSERT INTO Contacts VALUES (@VendorNo, @DateIssued, @Surname, @FirstName, @ContactNumber, @Address)", conn)
        With updAdd.Parameters
            .Add("@VendorNo", txtAddVendorNumber.Text)
            .Add("@DateIssued", txtAddDateIssued.Text)
            .Add("@Surname", txtAddSurname.Text)
            .Add("@FirstName", txtAddFirstName.Text)
            .Add("@ContactNumber", txtAddContactNumber.Text)
            .Add("@Address", txtAddAddress.Text)
        End With
        updAdd.ExecuteNonQuery()
    Finally
        conn.Close()
    End Try
End Sub

Any help solving this issue would be greatly appreciated! It's got me confused thats for sure heh.
 
Is the ID column declared as an identity(autoincrement)? If it is not declared as an identity then it would expect you to supply a value for that column.

If the ID column allowed to be null, then your insert should be:

INSERT INTO Contacts (VendorNo, DateIssued, Surname, FirstName, ContactNumber, Address)
VALUES (@VendorNo, @DateIssued, @Surname, @FirstName, @ContactNumber, @Address)

That ways it tell SQL that you only what to insert values into those columns.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top