Usuário com melhor resposta
Erro ao acessar Oracle ODBC 11.2 - "COLUNA1" NUMBER(16,4)

Pergunta
-
Quando uma query é realizada e retorna um valor numérico decimal de uma coluna com um tamanho e precisão grandes, ocorre o erro "Input String was not in a correct format".
O ASP.Net não consegue lidar com o número vindo de uma coluna como a seguinte: NUMBER(16,4).
Os dados técnicos para a reprodução do erro são:
Sistema ASP.Net 4.0 usando driver ODBC Oracle 11.2
Coluna Oracle que causa o erro: "COL1" NUMBER(16,4)
Valores testados:
0.65 (causa erro)
40 (não causa erro)
Null (não causa erro)
0 (não causa erro)
3000 (não causa erro)
Linhas de código executadas:
reader.Read();
reader = command.ExecuteReader(CommandBehavior.CloseConnection);
string valor = reader[i].ToString();//erro ocorre aqui
Respostas
-
Amigo, boa tarde.
Estou tentando ler seu código e me parece que ele está incompleto ou fora de ordem.
Por favor, teria como você postar o código completo para que possamos analisar de uma melhor forma ?
Abraços !
Diego Murakami
- MCP, MS, MCSD
* Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.- Marcado como Resposta BXBsoft sexta-feira, 6 de junho de 2014 14:40
Todas as Respostas
-
Amigo, boa tarde.
Estou tentando ler seu código e me parece que ele está incompleto ou fora de ordem.
Por favor, teria como você postar o código completo para que possamos analisar de uma melhor forma ?
Abraços !
Diego Murakami
- MCP, MS, MCSD
* Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.- Marcado como Resposta BXBsoft sexta-feira, 6 de junho de 2014 14:40
-
Segue um exemplo onde ocorre o erro:
try {
OdbcConnection connection = new dbcConnection("DSN=oraclexe;UID=system;PWD=123;");
connection.Open();
OdbcCommand command = connection.CreateCommand();
command.CommandTimeout = 14400;
command.CommandText = "select COLUNA1 from table1";
OdbcDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
string valor = reader[0].ToString(); // <--- ERRO AQUI
connection.Close();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
-
Amigo, bom dia.
Coloque então um breakpoint na linha onde ocorre o erro e verifique o valor de reader[0].
Esse objeto está inválido no retorno e você terá que fazer uma conversão para string de outra forma.
Utilize esse link como referência para conversões de valores em string.
Teste e poste seus resultados.
Diego Murakami
- MCP, MS, MCSD
* Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.