sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo insertar datos en SQL Server usando VBNet?

Significa que la cantidad de valores especificados en su VALUES cláusula en INSERT declaración no es igual al número total de columnas en la tabla. Debe especificar el nombre de la columna si solo intenta insertar en las columnas seleccionadas.

Otro, ya que estás usando ADO.Net , siempre parametrizó su consulta para evitar SQL Injection . Lo que estás haciendo ahora mismo es derrotar el uso de 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 

PD:cambie los nombres de columna especificados en la consulta a la columna original que se encuentra en su tabla.