Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

Trabalhando com multi-camadas

Recommended Posts

Olá pessoal,

 

Estou com problemas para trabalhar com camadas usando o MySQL.

 

 

O código q estou usando é esse:

 

*****************************************************************************

Imports Microsoft.VisualBasic
Imports MySql.Data.MySqlClient

Namespace Medfisio

	Public Class ObjArtigos
		Dim vlCodigo As Integer
		Dim vlUsuario As Integer
		Dim vlData As DateTime
		Dim vlTitulo As String
		Dim vlSubtitulo As String
		Dim vlArtigo As String

		Property Codigo()
			Get
				Return vlCodigo
			End Get
			Set(ByVal value)
				vlCodigo = value
			End Set
		End Property

		Property Usuario()
			Get
				Return vlUsuario
			End Get
			Set(ByVal value)
				vlUsuario = value
			End Set
		End Property

		Property DataAtual()
			Get
				Return vlData
			End Get
			Set(ByVal value)
				vlData = value
			End Set
		End Property

		Property Titulo()
			Get
				Return vlTitulo
			End Get
			Set(ByVal value)
				vlTitulo = value
			End Set
		End Property

		Property Subtitulo()
			Get
				Return vlSubtitulo
			End Get
			Set(ByVal value)
				vlSubtitulo = value
			End Set
		End Property

		Property Artigo()
			Get
				Return vlArtigo
			End Get
			Set(ByVal value)
				vlArtigo = value
			End Set
		End Property

		Public Function Incluir()
			Dim conexaoMySQL As MySqlConnection
			Dim Cm As New MySqlCommand
			Dim SQL As New System.Text.StringBuilder
			Dim Conexao As String
			Conexao = ConfigurationManager.AppSettings("cStrConexao")
			conexaoMySQL = New MySqlConnection(Conexao)

			SQL.Append(" INSERT INTO tb_artigos(Usu_Codigo, Art_Data, ")
			SQL.Append(" Art_Titulo, Art_Subtitulo, Art_Descricao) ")
			SQL.Append(" VALUES(?Usuario, ?DataAtual, ?Titulo, ?Subtitulo, ?Artigo) ")

			With Cm.Parameters
				.Add(New MySqlParameter("?Usuario", vlUsuario))
				.Add(New MySqlParameter("?DataAtual", vlData))
				.Add(New MySqlParameter("?Titulo", vlTitulo))
				.Add(New MySqlParameter("?Subtitulo", vlSubtitulo))
				.Add(New MySqlParameter("?Artigo", vlArtigo))
			End With

			Cm.Connection = conexaoMySQL
			Cm.CommandText = SQL.ToString
			conexaoMySQL.Open()
			Cm.ExecuteNonQuery()
			conexaoMySQL.Close()

		End Function

		Public Function Alterar()
			Dim conexaoMySQL As MySqlConnection
			Dim Cm As New MySqlCommand
			Dim SQL As New System.Text.StringBuilder
			Dim Conexao As String
			Conexao = ConfigurationManager.AppSettings("cStrConexao")
			conexaoMySQL = New MySqlConnection(Conexao)

			SQL.Append(" UPDATE tb_artigos SET ")
			SQL.Append(" Usu_Codigo = ?Usuario, ")
			SQL.Append(" Art_Data = ?DataAtual, ")
			SQL.Append(" Art_Titulo = ?Titulo, ")
			SQL.Append(" Art_Subtitulo = ?Subtitulo, ")
			SQL.Append(" Art_Descricao = ?Artigo ")
			SQL.Append(" WHERE Art_Codigo = ?Codigo ")

			With Cm.Parameters
				.Add(New MySqlParameter("?Usuario", vlUsuario))
				.Add(New MySqlParameter("?DataAtual", vlData))
				.Add(New MySqlParameter("?Titulo", vlTitulo))
				.Add(New MySqlParameter("?Subtitulo", vlSubtitulo))
				.Add(New MySqlParameter("?Artigo", vlArtigo))
				.Add(New MySqlParameter("?Codigo", vlCodigo))
			End With

			Cm.Connection = conexaoMySQL
			Cm.CommandText = SQL.ToString
			conexaoMySQL.Open()
			Cm.ExecuteNonQuery()
			conexaoMySQL.Close()

		End Function

		Public Function Excluir()
			Dim conexaoMySQL As MySqlConnection
			Dim Cm As New MySqlCommand
			Dim SQL As New System.Text.StringBuilder
			Dim Conexao As String
			Conexao = ConfigurationManager.AppSettings("cStrConexao")
			conexaoMySQL = New MySqlConnection(Conexao)

			SQL.Append(" DELETE FROM tb_artigos ")
			SQL.Append(" WHERE Art_Codigo = " & vlCodigo)

			Cm.Connection = conexaoMySQL
			Cm.CommandText = SQL.ToString
			conexaoMySQL.Open()
			Cm.ExecuteNonQuery()
			conexaoMySQL.Close()

		End Function

		Public Function Consultar(ByVal pParametro As String) As Data.DataSet
			Dim conexaoMySQL As MySqlConnection
			Dim Da As MySqlDataAdapter
			Dim Ds As Data.DataSet
			Dim SQL As New System.Text.StringBuilder
			Dim Conexao As String
			Conexao = ConfigurationManager.AppSettings("cStrConexao")
			conexaoMySQL = New MySqlConnection(Conexao)

			SQL.Append(" SELECT A.Art_Codigo, A.Usu_Codigo, A.Art_Data, ")
			SQL.Append(" A.Art_Titulo, A.Art_Subtitulo, A.Art_Descricao, U.Usu_Nome ")
			SQL.Append(" FROM tb_artigos AS A ")
			SQL.Append(" INNER JOIN tb_usuarios AS U ON A.Usu_Codigo = U.Usu_Codigo ")
			If Trim(pParametro) <> "" Then SQL.Append(" WHERE " & pParametro & "")
			SQL.Append(" ORDER BY A.Usu_Codigo, A.Art_Data, A.Art_Titulo ")
			Da = New MySqlDataAdapter(SQL.ToString, conexaoMySQL)
			Ds = New Data.DataSet
			Da.Fill(Ds)

		End Function

	End Class

End Namespace
*****************************************************************************

 

Os inserts, updates e deletes, estão funcionando muito bem, porém, a consulta não.

 

Estou usando-a da seguinte forma no código aspx.vb:

 

*****************************************************************************

Imports MySql.Data.MySqlClient
Imports System.Drawing

Partial Class Administrador_CadArtigos
	Inherits System.Web.UI.Page
	Private Artigos As New Medfisio.ObjArtigos

....


Private Sub PovoaGrid()
		Dim Ds As Data.DataSet
		Ds = Artigos.Consultar(" A.Art_Titulo LIKE '%" & TxtConsulta.Text & "%' ")
		DataGrid1.DataSource = Ds
		DataGrid1.DataBind()

	End Sub
*****************************************************************************

 

O q pode estar faltando para q a função funcione corretamente?

 

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ilano qual o erro? Uma coisa que já reparei na sua função de consulta é que em nenhum momento você abriu o banco de dados, não achei o Conexao.Open. Mas poste o erro fica mais fácil para te ajudar.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Quintelab,

 

Desde já agradeço sua atenção.

Bom, erro, não aparece nenhum. Mas fazendo um BreakPoint percebi q o Ds está retornando Nothing, mesmo tendo adicionado a linha conexaoMySQL.Open(), como você postou.

 

Private Sub PovoaGrid()

Dim Ds As Data.DataSet

Ds = Artigos.Consultar(" A.Art_Titulo LIKE '%" & TxtConsulta.Text & "%' ")

DataGrid1.DataSource = Ds 'Está retornando Nothing

DataGrid1.DataBind()

 

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza quintelab! Era só isso mesmo q estava faltando!!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Valeu cara! você salvou meu trabalho!

 

Cara, obrigadão mesmo, muito!!!! Isso estava me deixando louco!

Que bom que deu certo, precisando só postar!!!

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.