How can I Insert data into SQL Server using VBNet
sql-server, vb.net
Solution
It means that the number of values specified in your `VALUES` clause on the `INSERT` statement is not equal to the total number of columns in the table. You must specify the columnname if you only try to insert on selected columns.
Another one, since you are using `ADO.Net` , always parameterized your query to avoid `SQL Injection`. What you are doing right now is you are defeating the use of `sqlCommand`.
ex
Dim query as String = String.Empty
query &= "INSERT INTO student (colName, colID, colPhone, "
query &= " colBranch, colCourse, coldblFee) "
query &= "VALUES (@colName,@colID, @colPhone, @colBranch,@colCourse, @coldblFee)"
Using conn as New SqlConnection("connectionStringHere")
Using comm As New SqlCommand()
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = query
.Parameters.AddWithValue("@colName", strName)
.Parameters.AddWithValue("@colID", strId)
.Parameters.AddWithValue("@colPhone", strPhone)
.Parameters.AddWithValue("@colBranch", strBranch)
.Parameters.AddWithValue("@colCourse", strCourse)
.Parameters.AddWithValue("@coldblFee", dblFee)
End With
Try
conn.open()
comm.ExecuteNonQuery()
Catch(ex as SqlException)
MessageBox.Show(ex.Message.ToString(), "Error Message")
End Try
End Using
End USing
PS: Please change the column names specified in the query to the original column found in your table.
Problem
I am new to `vb.net` I need to insert data in table by using vb.net please can any one help I have tried this Here I tried Sample Code I got this exception `Column name or number of supplied values does not match table definition.` thanks advance ``` Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click Dim strName As String = txtName.Text Dim strId As String = txtID.Text Dim strPhone As String = txtPhone.Text Dim strBranch As String = cmboxBranch.SelectedItem.ToString() Dim strCourse As String = cmbboxCourse.SelectedItem.ToString() Dim dblFee As Double = Double.Parse(txtFee.Text) Dim strCommand As String = "insert into student values('" & strName & "','" & strId & "','" & strPhone & "','" & strBranch & "','" & strCourse & "'," & dblFee & ")" Dim command As SqlCommand = New SqlCommand(strCommand, connection) command.CommandType = CommandType.Text '' MsgBox(strCommand) connection.Open() If (command.ExecuteNonQuery().Equals(1)) Then MsgBox("Information stored in database") Else MsgBox("Not stored in database") End If End Sub ```