Metodos select insert update e delete dentro de uma classe no c#
14/05/2012
0
sou novo no c# Orientação o objetos aqui é fácil é difícil ao mesmo tempo.Criei duas classes e tudo deveria funcionar perfeitamente mas simplesmente eu nao consigo jogar o select * from tb_cidade no webform do aspnet aluguem poderia me dizer o que esta errado aqui ? desde já agradeço
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public class banco
{
public string _Conexao;
private SqlDataSource _Sql;
public banco()
{
_Conexao = @Data Source=meuDatabaseSQLserver2008#;
_Sql = new SqlDataSource();
_Sql.ConnectionString = _Conexao;
}
public GridView ExecutaSelect(string pSql)
{
_Sql.SelectCommand = pSql;
GridView grd = (GridView)_Sql.Select(DataSourceSelectArguments.Empty);
return (grd);
}
public int ExecutaInsert(string pSql)
{
_Sql.InsertCommand = pSql;
return _Sql.Insert();
}
public int ExecutaUpdate(string pSql)
{
_Sql.UpdateCommand = pSql;
return _Sql.Update();
}
public int ExecutaDelete(string pSql)
{
_Sql.DeleteCommand = pSql;
return _Sql.Delete();
}
}
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.UI.WebControls;
using System.Data;
public class Cidade : banco
{
private String _Nm_Cidade;
private string _Nm_Uf;
public string Nm_Cidade
{
get
{
return _Nm_Cidade;
}
set
{
_Nm_Cidade = value;
}
}
public string Nm_Uf
{
get
{
return _Nm_Uf;
}
set
{
_Nm_Uf = value;
}
}
public Cidade()
{
this._Nm_Cidade = string.Empty;
this._Nm_Uf = string.Empty;
}
public Cidade(string pUf)
{
_Nm_Uf = Nm_Uf;
}
public GridView Selecionar()
{
return ExecutaSelect(select * from tb_cidade);
}
public int Inserir()
{
return ExecutaInsert(insert into tb_Cidades (Nm_cidade , Nm_Uf) +
values ( + this.Nm_Cidade.ToString() + , + this._Nm_Uf.ToString());
}
public int Alterar()
{
throw new System.NotImplementedException();
}
public int Excluir()
{
throw new System.NotImplementedException();
}
}
Carlos Faria
Posts
14/05/2012
Joel Rodrigues
Primeiramente, verifique se essa sua string de conexão está correta. Acho que está faltando alguma coisa, não?
14/05/2012
Carlos Faria
//Esta classe acessa o banco e tem os metodos executaSelect , ExecutaInsert , ExecutaUpdate , Executadelete
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public class banco
{
public string _Conexao;
private SqlDataSource _Sql;
public banco()
{
_Conexao = @Data Source=lbtecsys.sytes.net;Initial Catalog=dbjava;Persist Security Info=True;User ID=UserNet;Password=@@sysdba@@#;
_Sql = new SqlDataSource();
_Sql.ConnectionString = _Conexao;
}
public GridView ExecutaSelect(string pSql)
{
_Sql.SelectCommand = pSql;
GridView grd = (GridView)_Sql.Select(DataSourceSelectArguments.Empty);
return (grd);
}
public int ExecutaInsert(string pSql)
{
_Sql.InsertCommand = pSql;
return _Sql.Insert();
}
public int ExecutaUpdate(string pSql)
{
_Sql.UpdateCommand = pSql;
return _Sql.Update();
}
public int ExecutaDelete(string pSql)
{
_Sql.DeleteCommand = pSql;
return _Sql.Delete();
}
//Esta classe herda da classe banco tem algums metodos aqui estou trabalhando somente com o select
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.UI.WebControls;
using System.Data;
public class Cidade : banco
{
private String _Nm_Cidade;
private string _Nm_Uf;
public string Nm_Cidade
{
get
{
return _Nm_Cidade;
}
set
{
_Nm_Cidade = value;
}
}
public string Nm_Uf
{
get
{
return _Nm_Uf;
}
set
{
_Nm_Uf = value;
}
}
public Cidade()
{
Nm_Cidade = string.Empty;
Nm_Uf = string.Empty;
}
public Cidade(string pUf)
{
Nm_Uf = pUf;
}
public int Inserir()
{
return ExecutaInsert(insert into tb_Cidades (Nm_cidade , Nm_Uf) +
values ( + Nm_Cidade.ToString() + , + Nm_Uf.ToString() +));
}
public GridView Selecionar()
{
return ExecutaSelect(select * from tb_cidade where Nm_Uf = + Nm_Uf.ToString());
}
public int Alterar()
{
throw new System.NotImplementedException();
}
public int Excluir()
{
throw new System.NotImplementedException();
}
}
}
//já tentei chamala de um webform usando um object adddatasource new object e apontando o mesmo para a classe da erro
//no envento onload do webform tentei também sem sucesso
grd.DataSource = cd.Selecionar();
grd.DataBind();
//Talves e meu jeito de chamar o metodo do webform esteja errado , a classe me parece ok
se alguem puder me dar um exemplo de como chamar a classe corretamente de um webform agradeço.
nao entendo também porque o metodo selecionar() as ser digitado no form nao pede paramentos ja que tenho um contrutor com parametros e outro sem parametros
14/05/2012
Joel Rodrigues
Eu utilizaria algo do tipo:
public DataTable Selecionar(string sql) { SqlConnection conexao = new SqlConnection(StringConexao); SqlCommand comando = conexao.CreateCommand(); comando.CommandText = sql; SqlDataAdapter adaptador = new SqlDataAdapter(comando); DataTable tabela = new DataTable(); conexao.Open(); adapdator.Fill(tabela); conexao.Close(); return tabela; }
Reparei que eu declarei todos os objetos dentro do método, mas você pode ter objetos globais para serem acessados em qualquer método.
Para usar, você faria:
meuGridView.DataSource = objeto.Selecionar(instrucaoSQL); meuGridView.DataBind();
16/05/2012
Carlos Faria
16/05/2012
Carlos Faria
No exemplo do cara da vídeo aula não deu certo o seu exemplo aqui rodou redondo.
Agora sim fico interessante trabalhar com orientação a objetos.
Valeu obrigado.
16/05/2012
Carlos Faria
antes de fechar o post ultima pergunta:
Como você disse retornar em um gridview realmente não rola.
o seu método funcionou perfeitamente e no meu eu mudei o gridView para dataview, você acha que assim também seria bom ou não é uma pratica recomendada ?
Exemplo da classe completa abaixo agora sim funcionando.
public class banco
{
public string _Conexao;
private SqlDataSource _Sql;
public banco()
{
_Conexao = @Data Source=meudatabase.sytes.net;Initial Catalog=dbjava;Persist Security Info=True;User ID=UserNet;Password=minhasenha;
_Sql = new SqlDataSource();
_Sql.ConnectionString = _Conexao;
}
public DataView ExecutaSelect(string pSql)
{
_Sql.SelectCommand = pSql;
DataView dv = (DataView)_Sql.Select(DataSourceSelectArguments.Empty);
return (dv);
}
public int ExecutaInsert(string pSql)
{
_Sql.InsertCommand = pSql;
return _Sql.Insert();
}
public int ExecutaUpdate(string pSql)
{
_Sql.UpdateCommand = pSql;
return _Sql.Update();
}
public int ExecutaDelete(string pSql)
{
_Sql.DeleteCommand = pSql;
return _Sql.Delete();
}
16/05/2012
Joao Moreira
gdView.DataSource = listaCidades;
gdView.DataTextField = campo1;
gdView.DataValueField = campo2;
gdView.DataBind();
16/05/2012
Joel Rodrigues
16/05/2012
Carlos Faria
Vou seguir seu exemplo
Clique aqui para fazer login e interagir na Comunidade :)