CRUD con Entity Framework en VB.NET.
Agregar->Nuevo elemento-> ADO.NET EntityData Model. A continuación, seleccione la base de
datos Northwind y, a continuación, seleccione la tabla Customer.
Debe agregar un bindingsource a la Customer clase, a continuación, agregue el enlace de datos a
la TextBox y DataGridView controles.
A continuación, Declare la variable db le permite acceder a DbContext.
Private db As NorthwindEntities
Agregar el controlador de eventos de carga al formulario le permiten cargar la tabla de cliente en
el DataGridView control.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
db = New NorthwindEntities()
db.Customers.Load()
CustomerBindingSource.DataSource = db.Customers.Local
End Sub
Agregue el controlador de eventos click al botón Agregar le permite agregar un nuevo objeto de cliente.
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
CustomerBindingSource.AddNew()
End Sub
A continuación, Agregar el controlador de eventos click al botón Eliminar le permite quitar el objeto de
cliente del bindingsource.
Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
If MessageBox.Show("¿Seguro que quieres eliminar estos registros?", "Message",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
CustomerBindingSource.RemoveCurrent()
End If
End Sub
Para guardar datos en la base de datos sql, solo tiene que llamar a la SaveChanges método.
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
db.SaveChanges()
MessageBox.Show("Your data has been successfully saved !", "Message",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Por último, agregar el controlador de eventos de clic al botón Cancelar le permite restaurar el estado del objeto
de cliente como el siguiente código de vb.net.
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
Dim changed = db.ChangeTracker.Entries().Where(Function(x) x.State <>
EntityState.Unchanged).ToList()
For Each obj In changed
Select Case obj.State
Case EntityState.Modified
obj.CurrentValues.SetValues(obj.OriginalValues)
obj.State = EntityState.Unchanged
Case EntityState.Added
obj.State = EntityState.Detached
Case EntityState.Deleted
obj.State = EntityState.Unchanged
End Select
Next
CustomerBindingSource.ResetBindings(False)
End Sub
Y no olvide eliminar la variable db al cerrar la aplicación de formularios de Windows.
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles
MyBase.FormClosing
db.Dispose()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim entities As NorthwindEntities = New NorthwindEntities()
Dim customers = From p In entities.Customers _
Select New With {.CustomerId = p.CustomerID, _
.ContactName = p.ContactName, _
.Country = p.Country}
dataGridView1.DataSource = customers.ToList()
End Sub