Introducción:
La inserción de nuevos datos la haremos con el comando INSERT INTO de SQL.
Para añadir nuevos datos, no tenemos que hacer nada especial, salvo
indicar los valores de cada uno de los campos que queremos incluir en cada
fila (registro) de la tabla.
Recuerda que en estos ejemplo, el campo ID es autonumérico, y en uno de
los ejemplos, se utiliza la variable @@Identity de SQL
Server para saber cuál ese el valor de ese campo al añadir un nuevo dato.
Si no quieres recuperar el valor del campo ID (porque tu tabla no tenga
un campo de esas características), tendrás que quitar la línea del final:
SELECT @@Identity.
Tampoco necesitarás averiguar el valor de ese ID, por tanto, puedes cambiar
la llamada a ExecuteScalar por ExecuteNonQuery.
En el siguiente ejemplo los datos están en una base de datos de SQL
Server que está en la instancia SQLEXPRESS del equipo local.
Para más info sobre la base de datos de ejemplo, ver:
Estructura de la tabla de
ejemplo.
Nota:
El código de esta página está en Visual Basic, pero puedes ver
el de C# en la página con el código
completo.
Public Function CadenaConexion() As String
Dim csb As New SqlConnectionStringBuilder
csb.DataSource = "(local)\SQLEXPRESS"
csb.InitialCatalog = "prueba_SQL"
csb.IntegratedSecurity = True
Return csb.ConnectionString
End Function
Public Function Insertar(ByVal nombre As String, _
ByVal apellidos As String, _
ByVal email As String, _
ByVal fecha As DateTime, _
ByVal descripcion As String) As Integer
Dim sCon As String = CadenaConexion()
Dim sel As String
sel = "INSERT INTO " & NombreTabla & _
"(Nombre, Apellidos, Email, Fecha, Descripcion) " & _
"VALUES " & _
"(@Nombre, @Apellidos, @Email, @Fecha, @Descripcion) " & _
"SELECT @@Identity"
Using con As New SqlConnection(sCon)
Dim cmd As New SqlCommand(sel, con)
cmd.Parameters.AddWithValue("@Nombre", nombre)
cmd.Parameters.AddWithValue("@Apellidos", apellidos)
cmd.Parameters.AddWithValue("@Email", email)
cmd.Parameters.AddWithValue("@Fecha", fecha)
cmd.Parameters.AddWithValue("@Descripcion", descripcion)
con.Open()
Dim t As Integer = CInt(cmd.ExecuteScalar())
con.Close()
Return t
End Using
End Function
Espero que te sea de utilidad y si quieres ver otros ejemplos del resto de
comandos, puedes hacerlo desde:
Instrucciones SQL desde ADO.NET.
Nos vemos.
Guillermo
Espacios de nombres usados en el código de este artículo:
System.Data.SqlClient