Question:
I'm having a problem reading the values returned from a select
, on the line where I do:
OracleDataReader reader = cmd.ExecuteReader();
in read
it brings me the values correctly, but in the next line where I do reader.Read()
says that the enumeration didn't generate results.
How do I solve this problem?
Source
OracleConnection cnn = new OracleConnection(DataFunctions.GetDefaultConnectionString()); OracleCommand cmd = cnn.CreateCommand(); OracleDataAdapter adapter = new OracleDataAdapter();
try
{
cnn.Open();
cmd.Connection = cnn;
cmd.CommandText = String.Format("select * from VI_TESTE where cd_codigo = {0}", code);
OracleDataReader reader = cmd.ExecuteReader();
// Ao debugar, aqui tem registros
if (reader.Read())
{
// aqui não tem mais registros
var test1 = reader.GetValue(0);
}
}
finally
{
cnn.Close();
}
Answer:
The approach by OracleDataReader
will possibly bring you inspection problems. For your case, just use OracleDataAdapter
as shown below:
using (var cnn = new OracleConnection(DataFunctions.GetDefaultConnectionString()))
{
var cmd = cnn.CreateCommand();
try
{
cnn.Open();
cmd.Connection = cnn;
cmd.CommandText = String.Format("select * from VI_TESTE where cd_codigo = {0}", code);
var ds = new DataSet();
var adapter = new OracleDataAdapter(cmd);
adapter.Fill(ds);
// Inspecione aqui ds
}
finally
{
cnn.Close();
}
}