Ilano 0 Denunciar post Postado Janeiro 17, 2008 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
quintelab 91 Denunciar post Postado Janeiro 17, 2008 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
Ilano 0 Denunciar post Postado Janeiro 17, 2008 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
quintelab 91 Denunciar post Postado Janeiro 17, 2008 No final da sua função de Consulta adicione o seguinte comando: Return ds Antes do End Function Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Janeiro 17, 2008 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! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 18, 2008 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