Compartir a través de


Insertar registros nuevos en una base de datos en aplicaciones de .NET Framework

Para insertar nuevos registros en una base de datos con ADO.NET en un proyecto de .NET Framework, el enfoque común es usar métodos TableAdapter. Los métodos TableAdapters habilitan la aplicación con una base de datos. Estos métodos proporcionan diferentes formas de insertar nuevos registros en una base de datos, en función de los requisitos de la aplicación. Puede usar el método TableAdapter.Update o uno de los métodos DBDirect de TableAdapter (en concreto, el método TableAdapter.Insert).

En este artículo se describe cómo insertar registros en una base de datos para una aplicación compilada con ADO.NET y .NET Framework mediante Visual Basic (VB) o C#. Si la configuración de la aplicación usa Entity Framework 6, consulte Adición de una nueva entidad al contexto o para Entity Framework Core, consulte Agregar datos.

Nota:

Los conjuntos de datos y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de la década de 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar los datos y conservar los cambios en la base de datos. Aunque los conjuntos de datos han demostrado ser una tecnología de gran éxito, se recomienda que las nuevas aplicaciones de .NET usen Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.

Requisitos previos

  • Para trabajar con métodos TableAdapter, debe tener una instancia disponible. Para obtener más información, consulte Crear y configurar TableAdapters en aplicaciones de .NET Framework.

  • Seguridad de .NET: debe tener acceso a la base de datos a la que intenta conectarse, así como permiso para realizar inserciones en la tabla deseada.

Elegir método de inserción

Hay diferentes enfoques para insertar registros en una base de datos en función del escenario de la aplicación. En la tabla siguiente se resumen las opciones:

Escenario Enfoque Notas
La aplicación usa conjuntos de datos para almacenar datos Use el método TableAdapter.Update para enviar todos los cambios a la base de datos. Los cambios incluyen actualizaciones, inserciones y eliminaciones.
La aplicación usa objetos para almacenar datos Use el método TableAdapter.Insert para insertar nuevos registros en la base de datos Este enfoque le permite tener un control más preciso sobre la creación de nuevos registros.
La aplicación usa TableAdapters, el método Insert no está disponible Establezca la propiedad TableAdapter GenerateDBDirectMethods en true desde el Diseñador de Dataset y guarde el conjunto de datos para volver a generar TableAdapter Si su propiedad TableAdapter no tiene un método Insert, TableAdapter está configurada para usar procedimientos almacenados o la propiedad GenerateDBDirectMethods está establecida en false.
Si el método Insert sigue sin estar disponible después de volver a generar TableAdapter, es probable que la tabla no proporcione suficiente información de esquema para distinguir entre filas individuales (por ejemplo, es posible que no haya ninguna clave principal establecida en la tabla).
La aplicación no usa TableAdapters Use objetos de comando para insertar nuevos registros en la base de datos Ejemplo: SqlCommand

Insertar nuevos registros mediante TableAdapters

Si la aplicación usa conjuntos de datos para almacenar datos, puede agregar nuevos registros al conjunto de datos deseado DataTable y, a continuación, llamar al método TableAdapter.Update. El método TableAdapter.Update envía los cambios de DataTable a la base de datos, incluidos los registros modificados y eliminados.

Insertar nuevos registros con el método TableAdapter.Update

En el procedimiento siguiente se muestra cómo insertar nuevos registros en una base de datos mediante el método TableAdapter.Update:

  1. Agregue nuevos registros al deseado DataTable creando un nuevo DataRow y agregándolo a la colección Rows.

  2. Después de agregar las nuevas filas a DataTable, llame al método TableAdapter.Update. Puede controlar la cantidad de datos que se van a actualizar pasando uno de los siguientes valores de parámetro:

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

    // 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);
    

Insertar nuevos registros con el método TableAdapter.Insert

Si la aplicación usa objetos para almacenar datos, puede usar el método TableAdapter.Insert para crear filas nuevas 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.

  • Llame al método Insert de TableAdapter y pase los valores de cada columna como parámetros.

En el procedimiento siguiente se muestra cómo utilizar el método TableAdapter.Insert para insertar filas. En este ejemplo se insertan datos en la tabla Region de la base de datos Northwind.

Nota:

Si no tiene una instancia disponible, cree la instancia TableAdapter que desee usar.

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

Insertar nuevos registros mediante objetos de comando

Puede insertar nuevos registros directamente en una base de datos mediante objetos de comando.

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

En el procedimiento siguiente se muestra cómo insertar nuevos registros en una base de datos mediante un objeto de comando. En este ejemplo se insertan datos en la tabla Region de la base de datos Northwind.

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();