Có nghĩa là số lượng giá trị được chỉ định trong VALUES
của bạn mệnh đề trên INSERT
câu lệnh không bằng tổng số cột trong bảng. Bạn phải chỉ định tên cột nếu bạn chỉ cố gắng chèn vào các cột đã chọn.
Một cái khác, vì bạn đang sử dụng ADO.Net
, luôn được tham số hóa truy vấn của bạn để tránh SQL Injection
. Những gì bạn đang làm ngay bây giờ là bạn đang đánh bại việc sử dụng sqlCommand
.
ví dụ:
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
Tái bút:Vui lòng thay đổi tên cột được chỉ định trong truy vấn thành cột ban đầu được tìm thấy trong bảng của bạn.