Compartir a través de


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

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. 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.

Para insertar nuevos registros en una base de datos con ADO.NET en un proyecto de .NET Framework, puede usar el método TableAdapter.Update o uno de los métodos DBDirect de TableAdapter (específicamente el método TableAdapter.Insert). Para obtener más información, consulta TableAdapter.

Si la aplicación no usa TableAdapters, puede usar objetos de comando (por ejemplo, SqlCommand) para insertar nuevos registros en la base de datos.

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

Si la aplicación usa objetos para almacenar datos, o si desea un control más preciso sobre la creación de nuevos registros en la base de datos, use el método TableAdapter.Insert.

Si tableAdapter no tiene un método Insert, significa que TableAdapter está configurado para usar procedimientos almacenados o que su propiedad GenerateDBDirectMethods está establecida en false. Intente establecer la propiedad GenerateDBDirectMethods de TableAdapter en true desde el Diseñador de DataSet y, a continuación, guarde el conjunto de datos. Esta acción vuelve a generar TableAdapter. Si TableAdapter todavía no tiene un método Insert, es probable que la tabla no proporcione suficiente información de esquema para distinguir entre filas individuales (por ejemplo, podría no haber ninguna clave principal establecida en la tabla).

Nota

Este artículo se aplica al desarrollo de ADO.NET y .NET Framework. Para obtener la misma tarea con Entity Framework 6, consulte Adición de una nueva entidad al contexto. Para Entity Framework Core, consulte Adición de datos.

Insertar nuevos registros mediante TableAdapters

TableAdapters proporciona diferentes maneras de insertar nuevos registros en una base de datos, en función de los requisitos de la aplicación.

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).

Para 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 un elemento completo DataSet, un DataTable, una matriz de DataRow o un único DataRow.

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

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

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 tableAdapter Insert y pase los valores de cada columna como parámetros.

En el procedimiento siguiente se muestra el uso del 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 una instancia de TableAdapter que quiera usar.

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

regionTableAdapter.Insert(5, "NorthWestern");

Insertar registros nuevos mediante objetos de comando

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

Para insertar nuevos registros 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 ejemplo siguiente se muestra cómo insertar registros en una base de datos mediante el 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();

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.