Maestría: ADO.Net with Mono
6 de Octubre del 2009 | Deja un Comentario | Internet, Programación, Software |
Los archivos que presento a continuación fueron los creados en clase, si presentan un bug favor de reportarlo en los comentarios.
Estos programas son en vb.Net sobre el Proyecto Mono, si deseas saber más acerca de este proyecto y ver algunos buenos ejemplos puedes visitar el blog de Enrique Aguilar.
clsMateria.vb
Option Explicit On Option Strict On Imports System Namespace ServiceAlumnos Public Class clsMateria Inherits ServiceAlumnos.DataAbstractionLayer Public Sub New() MyBase.New End Sub Private _matricula As Integer Private _materiaID As String Private _Nombre As String Private _Calificacion as Integer Public Property Matricula () As String Get Return _matricula End Get Set (ByVal value as String) _matricula = value End Set End Property Public Property MateriaID () As String Get Return _materiaID End Get Set (ByVal value as String) _materiaID = value End Set End Property Public Property Nombre () As String Get Return _Nombre End Get Set (ByVal value as String) _Nombre = value End Set End Property Public Property Calificacion () As Integer Get Return _Calificacion End Get Set (ByVal value as Integer) _Calificacion = value End Set End Property Public Overrides Sub Read(ByVal dr As MySql.Data.MySqlClient.MySqlDataReader) _materiaID = dr("MateriaID") _Nombre = dr("Nombre") _Calificacion = dr("Calificacion") End Sub End Class End Namespace |
clsAlumnos.vb
Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Collections.Generic Namespace ServiceAlumnos Public Class clsAlumno Inherits ServiceAlumnos.DataAbstractionLayer Public Sub New() MyBase.New End Sub Public Sub New(ByVal _cnnMySQL As MySql.Data.MySqlClient.MySqlConnection) MyBase.New(_cnnMySQL) End Sub Private _materiaDetails As New List (Of clsMateria) Private _matricula As Integer Private _nombre As String Private _apellidos As String Public Property Matricula() As Integer Get Return _matricula End Get Set(ByVal value As string) _matricula = value End Set End Property Public Property Nombre() As String Get Return _nombre End Get Set(ByVal value As string) _nombre = value End Set End Property Public Property Apellidos() As String Get Return _apellidos End Get Set(ByVal value As string) _apellidos = value End Set End Property Public ReadOnly Property MateriaDetails() As List(of clsMateria) Get Return _materiaDetails End Get End Property Public Overrides Sub Read(ByVal dr As MySql.Data.MySqlClient.MySqlDataReader) _matricula=dr("Matricula") _matricula=dr("Matricula") _nombre=dr("Nombre") _apellidos=dr("Apellidos") Dim strSQL As String = "SELECT * FROM Materias WHERE Matricula = " & _matricula Dim cnn As New MySql.Data.MySqlClient.MySqlConnection("Data Source=localhost;Initial Catalog=Escuela;User Id=root;Password=kalabaza") Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(strSQL,cnn) Dim drReader As MySql.Data.MySqlClient.MySqlDataReader=cmd.ExecuteReader() While drReader.Read() Dim objMateria As New clsMateria() objMateria.Read(drReader) _materiaDetails.add(objMateria) end While drReader.Close cnn.Close End Sub End Class End Namespace |
clsDAL.vb
Option Explicit On Option Strict On Imports System Imports System.Data Imports MySql.Data.MySqlClient Namespace ServiceAlumnos Public MustInherit Class DataAbstractionLayer Protected cnnMySQLConnection As MySqlConnection Public Sub New () MyBase.New() End Sub Public Sub New (ByVal _cnnConnection As MySqlConnection) cnnMySQLConnection=_cnnConnection CheckStatusConnection() End Sub 'Definicion de Metodos Abstractos Public MustOverride Sub Read(ByVal _drDataReader As MySqlDataReader) Public Overridable Sub SetConnection(ByVal _cnnConnection As MySqlConnection) cnnMySQLConnection=_cnnConnection CheckStatusConnection() End Sub Public Sub ExecuteNonQuery(ByVal cmdCommand As MySqlCommand, ByRef errError As String) If cnnMySQLConnection IsNot Nothing Then Dim tscTransaction As MySqlTransaction = cnnMySQLConnection.BeginTransaction try cmdCommand.Connection=cnnMySQLConnection cmdCommand.Transaction=tscTransaction cmdCommand.ExecuteNonQuery() tscTransaction.Commit() Catch exMySQL As MySqlException errError="Data Provider: MySQL Server" & vbCrlf & "Numero del Error" & exMySQL.Number & vbCrLf & _ "Descripcion del Error: " & exMySQL.Message tscTransaction.RollBack() Catch ex As Exception errError = "Origen de Error: " & ex.Source & vbCrLf & "Descripcion del Error: " & ex.Message Finally cnnMySQLConnection.Close() cnnMySQLConnection.Dispose() End Try End If End Sub Protected Sub CheckStatusConnection() If cnnMySQLConnection IsNot Nothing Then If cnnMySQLConnection.State=ConnectionState.Closed Then cnnMySQLConnection.Open() End IF End If End Sub End Class End Namespace |
Webservice
Option Explicit On Option Strict On Imports System Imports System.Web Imports System.Web.Services Imports System.Collections.Generic Namespace ServiceAlumnos Public Class ServiceAlumno Inherits System.Web.Services.WebService <webMethod()> _ Public Function GetAlumnos() As clsAlumno() Dim objAlumnos As New List(Of clsAlumno) Dim strSQL As String = "SELECT * FROM Alumno" Dim cnn As New MySql.Data.MySqlClient.MySqlConnection("Data Source=localhost;Initial Catalog=Escuela;User Id=root;Password=kalabaza") cnn.Open Dim cmd As New MySql.Data.MySqlClient.MySqlCommand(strSQL,cnn) Dim drReader As MySql.Data.MySqlClient.MySqlDataReader=cmd.ExecuteReader() While drReader.Read() Dim objAlumno As New clsAlumno() objAlumno.Read(drReader) objAlumnos.Add(ObjAlumno) end While drReader.Close cnn.Close End Function End Class End Namespace |
Y si te da flojera copiar el código aquí esta el rar de la solución: ServiceAlumnos









