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 . TableAdapters habilita la comunicación entre la aplicación y la base de datos. Proporcionan diferentes formas de insertar registros nuevos en una base de datos, en función de los requisitos de la aplicación. Puede usar el TableAdapter.Update método o uno de los métodos DBDirect de TableAdapter (en concreto, el TableAdapter.Insert método ).

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 Adición de datos.

Nota:

La DataSet clase y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de los años 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras las aplicaciones están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar datos y conservar los cambios de nuevo en la base de datos. Aunque los conjuntos de datos son una tecnología probada de éxito, el enfoque recomendado para las nuevas aplicaciones .NET es usar 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.

Prerrequisitos

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, Insert método no disponible Establezca la propiedad GenerateDBDirectMethods TableAdapter a true en el Diseñador de conjunto de datos y guarde el conjunto de datos para volver a generar el TableAdapter. Si el TableAdapter no tiene un método Insert, el TableAdapter está configurado para usar procedimientos almacenados o la propiedad GenerateDBDirectMethods está configurada en false.
Si el Insert método 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, puede que no haya ninguna clave principal establecida en la tabla).
La aplicación no usa TableAdapters Uso de objetos de comando para insertar nuevos registros en la base de datos Ejemplo: SqlCommand

Insertar registros nuevos 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 TableAdapter.Update método . El TableAdapter.Update método envía los cambios en la DataTable base de datos 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 TableAdapter.Update método :

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

  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 DataTable y, a continuación, llamar al TableAdapter.Update método para guardar la nueva fila en la base de datos. En este ejemplo se usa la Region tabla 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 TableAdapter.Insert método para crear filas nuevas directamente en la base de datos. El Insert método 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 tableAdapter Insert y pase los valores de cada columna como parámetros.

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

Nota:

Si no tiene una instancia disponible, instancie el TableAdapter que quiera usar.

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

regionTableAdapter.Insert(5, "NorthWestern");

Insertar nuevos registros con objetos de comando

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

  • Cree un nuevo objeto de comando y, a continuación, establezca sus Connectionpropiedades , CommandTypey CommandText .

En el procedimiento siguiente se muestra cómo insertar registros en una base de datos mediante el uso de un objeto de comando. En este ejemplo se insertan datos en la Region tabla 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();