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
:
Agregue nuevos registros al deseado DataTable creando un nuevo DataRow y agregándolo a la colección Rows.
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 tablaRegion
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
yCommandText
.
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();