2
I have a Grid
, but when I type something into the field textbox
, the search is not done and nothing is displayed on Grid
.
Follow the code made in 4 layers:
Form:
private void txtPesquisa_TextChanged(object sender, EventArgs e)
{
UsuarioDTO usuDto = new UsuarioDTO();
usuDto.Nome = txtPesquisa.Text;
dgvListaUsuario.DataSource = UsuarioModel.PesquisaUsuario(usuDto);
}
Class: Model
public static IList<UsuarioDTO> PesquisaUsuario (UsuarioDTO usuDto)
{
try
{
return new UsuarioDAO().PesquisaUsuario(usuDto);
}
catch (Exception ex)
{
throw ex;
}
}
Class: DAO
public IList<UsuarioDTO> PesquisaUsuario(UsuarioDTO usuDto)// esperando um retorno do UsuarioDTO que é o listaUsuarioDTO
{
// fazer o try catch para o tratamento de erro
try
{
SqlConnection CON = new SqlConnection();// conexão com o Banco de Dados SQL
CON.ConnectionString = Properties.Settings.Default.CSEmpilhadeiras; // criar uma String de conexão
SqlCommand CM = new SqlCommand();//
CM.CommandType = System.Data.CommandType.Text;
CM.CommandText = "SELECT tbUsuario WHERE nome_usu LIKE %@nomeUsu%";
CM.Parameters.Add("nomeUsu", System.Data.SqlDbType.VarChar).Value = usuDto.Nome;
CM.Connection = CON;
SqlDataReader ER;// colocar um dataread trazer o conteudo
// listaUsuarioDTO este é o objeto que vou carregar e retornar
IList<UsuarioDTO> listaUsuarioDTO = new List<UsuarioDTO>();
CON.Open();// abrir a conexão
ER = CM.ExecuteReader();// executa o comando
if (ER.HasRows) // se tem alguma linha. teve algum retorno ?
{
while (ER.Read())// ler linha a linha
{
// criar um usuarioDTO
UsuarioDTO usuario = new UsuarioDTO();
usuario.Codigo = Convert.ToInt32(ER["cod_usu"]);
usuario.Nome = Convert.ToString(ER["nome_usu"]);
usuario.Login = Convert.ToString(ER["login_usu"]);
usuario.Senha = Convert.ToString(ER["senha_usu"]);
usuario.Email = Convert.ToString(ER["email_usu"]);
usuario.Status = Convert.ToChar(ER["status_usu"]);
usuario.DtCadastro = Convert.ToDateTime(ER["dtCadastro_usu"]);
usuario.Nivel = Convert.ToChar(ER["nivel_usu"]);
// listaUsuarioDTO.Add(usuario);
}
}
return listaUsuarioDTO;
}
catch (Exception ex)
{
// se cair o Banco, se estiver fora
throw ex; // devolve o erro para quem Chamou que é o formulario
}
}
Class: User Name
public class UsuarioDTO
{
private int codigo;
private String nome;
private String login;
private String senha;
private String email;
private Char status;
private DateTime dtCadastro;
private Char nivel;
#region Getters e Setters
public int Codigo
{
get { return codigo; }
set { codigo = value; }
}
public String Nome
{
get { return nome; }
set { nome = value; }
}
public String Login
{
get { return login; }
set { login = value; }
}
public String Senha
{
get { return senha; }
set { senha = value; }
}
public String Email
{
get { return email; }
set { email = value; }
}
public Char Status
{
get { return status; }
set { status = value; }
}
public DateTime DtCadastro
{
get { return dtCadastro; }
set { dtCadastro = value; }
}
public Char Nivel
{
get { return nivel; }
set { nivel = value; }
}
}
I’m not getting to identify the mistake!
error
An unhandled Exception of type 'System.Data.Sqlclient.Sqlexception' occurred in Htsisforklifts.Model.dll
Additional information: Invalid column name 'usuName'.
Invalid column name 'tbUsuario'.
The select is wrong, I already corrected in my reply, I took advantage and arranged other details.
– Malkaviano