Това означава, че броят на стойностите, посочени във вашите VALUES
клауза на INSERT
изразът не е равен на общия брой колони в таблицата. Трябва да посочите името на колоната, ако се опитвате да вмъкнете само в избрани колони.
Друго, тъй като използвате ADO.Net
, винаги параметризира вашата заявка, за да избегне SQL Injection
. Това, което правите в момента, е, че побеждавате използването на sqlCommand
.
например
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:Моля, променете имената на колоните, посочени в заявката, към оригиналната колона, намираща се във вашата таблица.