Compartir a través de


Cómo: Insertar nuevos registros en una base de datos

Para insertar nuevos registros en una base de datos, puede utilizar el método TableAdapter.Update o uno de los métodos DBDirect del TableAdapter (concretamente el método TableAdapter.Insert). Para obtener más información, vea Información general sobre TableAdapter.

Si su aplicación no utiliza TableAdapters, puede utilizar objetos de comando para interactuar e insertar nuevos registros en la base de datos (por ejemplo, SqlCommand).

Utilice el método TableAdapter.Update cuando su aplicación utilice conjuntos de datos para almacenar los datos. El método Update envía todos los cambios (actualizaciones, inserciones y eliminaciones) a la base de datos.

Utilice el método TableAdapter.Insert cuando la aplicación utilice objetos para almacenar datos o cuando desee conseguir mayor control sobre la creación de registros en la base de datos.

Si el TableAdapter no dispone de un método Insert, significa que el TableAdapter está configurado para utilizar procedimientos almacenados o que su propiedad GenerateDBDirectMethods está establecida en false. Pruebe a establecer la propiedad GenerateDBDirectMethods de TableAdapter en true desde el Diseñador de Dataset y guarde el conjunto de datos para volver a generar el TableAdapter. Si aun así el TableAdapter no dispone de un método Insert, probablemente la tabla no proporciona información suficiente para distinguir entre filas individuales (por ejemplo, la tabla no dispone de clave principal).

Insertar nuevos registros utilizando TableAdapters

Los TableAdapters proporcionan maneras diferentes de insertar nuevos registros en una base de datos en función de los requisitos de su aplicación.

Si la aplicación utiliza conjuntos de datos para almacenar datos, puede agregar nuevos registros al objeto DataTable del conjunto de datos y, a continuación, llamar al método TableAdapter.Update. El método TableAdapter.Update toma cualquier cambio en DataTable y envía esos cambios a la base de datos (incluidos registros modificados y eliminados).

Para insertar nuevos registros en una base de datos utilizando el método TableAdapter.Update

  1. Agregue nuevos registros al objeto DataTable deseado creando un nuevo DataRow y agregándolo a la colección Rows. Para obtener más información, vea Cómo: Agregar filas a un DataTable.

  2. Después de que las filas se agreguen en DataTable, llame al método TableAdapter.Update. Puede controlar la cantidad de datos que se actualizan pasando un objeto DataSet completo, un objeto DataTable, una matriz de DataRows o un único objeto DataRow.

    En el código siguiente se muestra cómo agregar un nuevo registro en un objeto DataTable y cómo llamar al método TableAdapter.Update para guardar la nueva fila en la base de datos. (En este ejemplo se utiliza la tabla Region de la base de datos Northwind.)

    ' Create a new row.
    Dim newRegionRow As NorthwindDataSet.RegionRow
    newRegionRow = Me.NorthwindDataSet._Region.NewRegionRow()
    newRegionRow.RegionID = 5
    newRegionRow.RegionDescription = "NorthWestern"
    
    ' Add the row to the Region table
    Me.NorthwindDataSet._Region.Rows.Add(newRegionRow)
    
    ' Save the new row to the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Si la aplicación utiliza objetos para almacenar los datos, puede utilizar el método TableAdapter.Insert para crear nuevas filas directamente en la base de datos. El método Insert acepta los valores individuales de cada columna como parámetros. Al llamar al método, se inserta un nuevo registro en la base de datos con los valores de parámetro pasados.

El procedimiento siguiente utiliza la tabla Region de la base de datos Northwind como un ejemplo.

Para insertar nuevos registros en una base de datos utilizando el método TableAdapter.Insert

  • Llame al método Insert del TableAdapter, pasando los valores de cada columna como parámetros.

    Nota

    Si no tiene una instancia disponible, cree una instancia de TableAdapter que desee utilizar.

    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Insert(5, "NorthWestern")
    
    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Insert(5, "NorthWestern");
    

Insertar nuevos registros mediante objetos de comando

El ejemplo siguiente inserta nuevos registros directamente en una base de datos utilizando objetos de comando. Para obtener más información sobre el uso de objetos de comando para ejecutar comandos y procedimientos almacenados, vea Buscar datos en la aplicación.

El procedimiento siguiente utiliza la tabla Region de la base de datos Northwind como un ejemplo.

Para insertar nuevos registros en una base de datos utilizando objetos de comando

  • Cree un nuevo objeto de comando, establezca sus propiedades Connection, CommandType y CommandText.

    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As New System.Data.SqlClient.SqlCommand
    cmd.CommandType = System.Data.CommandType.Text
    cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')"
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
    
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    

Seguridad

Debe tener acceso a la base de datos con la que intenta conectarse, así como permiso para realizar inserciones en la tabla deseada.

Vea también

Tareas

Cómo: Eliminar registros de una base de datos

Cómo: Actualizar los registros de una base de datos

Cómo: Guardar los datos de un objeto en una base de datos

Conceptos

Enlazar controles a los datos en Visual Studio

Recuperar valores de identidad o valores Autonuméricos (ADO.NET)

Otros recursos

Información general de las aplicaciones de datos en Visual Studio

Conectarse a datos en Visual Studio

Preparar la aplicación para recibir datos

Buscar datos en la aplicación

Modificar datos en la aplicación

Validar datos

Guardar datos