ELEKTRO

Tecnología-WEB-Electrónica-Computación

Advertisement

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

Escribe un Comentario