Fórum conversão de nullo para inteiro ou data #14672
27/01/2010
0
Eu criei uma aplicação para cadastro de clientes em camadas.
na camada de acesso aos dados, eu atribuo aos atributos do objeto os valores dos campos da tabela. e para isso eu converto os dados para os tipos dos respectivos atributos do objeto.
o problema é quando algum campo está vazio, ou seja, com valor NULL, ele nao faz a conversão pois diz que não está no formato certo para o tipo.
Como eu ajusto isso?
public DTOSCM.Clientes Select() { DTOSCM.Clientes clients = new DTOSCM.Clientes(); SqlConnection con = new SqlConnection(ConStr); string SQL = "select * from Clientes";//"SelectMagazines"; SqlCommand cmd = new SqlCommand(SQL, con); cmd.CommandType = CommandType.Text; //cmd.CommandType = CommandType.Text; con.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { DTOSCM.Cliente client = new DTOSCM.Cliente(); client.IDCliente = int.Parse(dr["IDCliente"].ToString()); client.numeroCliente = int.Parse(dr["numeroCliente"].ToString()); client.nomeFantasia = dr["nomeFantasia"].ToString(); client.razaoSocial = dr["razaoSocial"].ToString(); client.dataContratacao = DateTime.Parse(dr["dataContratacao"].ToString()); client.dataRescisao = DateTime.Parse(dr["dataRescisao"].ToString()); } con.Close(); return clients; } Muito obrigado.
João Teixeira
Curtir tópico
+ 0Posts
27/01/2010
Fabio Mans
{
DTOSCM.Clientes clients = new DTOSCM.Clientes();
SqlConnection con = new SqlConnection(ConStr);
string SQL = "select * from Clientes";//"SelectMagazines";
SqlCommand cmd = new SqlCommand(SQL, con);
cmd.CommandType = CommandType.Text; //cmd.CommandType = CommandType.Text;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
DTOSCM.Cliente client = new DTOSCM.Cliente();
client.IDCliente = Convert.IsDBNull(dr["IDCliente"]) ? 0 : Convert.ToString(reader["IDCliente"]);
client.numeroCliente = int.Parse(dr["numeroCliente"].ToString());
client.nomeFantasia = dr["nomeFantasia"].ToString();
client.razaoSocial = dr["razaoSocial"].ToString();
client.dataContratacao = DateTime.Parse(dr["dataContratacao"].ToString());
client.dataRescisao = DateTime.Parse(dr["dataRescisao"].ToString());
}
con.Close();
return clients;
}
Estou utilizando um if ternário (IDCliente) Espero ter ajudado.
Gostei + 0
27/01/2010
João Teixeira
Gostei + 0
27/01/2010
Fabio Mans
Gostei + 0
27/01/2010
João Teixeira
Gostei + 0
27/01/2010
Fabio Mans
Gostei + 0
27/01/2010
João Teixeira
Gostei + 0
27/01/2010
Fabio Mans
Gostei + 0
27/01/2010
João Teixeira
Gostei + 0
28/01/2010
Fabio Mans
Gostei + 0
28/01/2010
João Teixeira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)