I'm trying to query the table below from my database.
Thisqueryisperformedusingthemethodbelow:
public void compraAcoes(float cepf, string codigo, int quantidade)
{
string cd = codigo;
try
{
float cpf;
BuscaNet busca = new BuscaNet();
Cotacao objeto = new Cotacao();
objeto = busca.buscaInformacao(codigo);
cpf = cepf;
string empresa = objeto.empresa;
string tipo = objeto.tipo;
DateTime data = Convert.ToDateTime(objeto.data);
string hora = objeto.hora;
double abertura = objeto.abertura;
double maxima = objeto.maxima;
double minima = objeto.minima;
double media = objeto.media;
double fechamento = objeto.fechamento;
double fechamento_anterior = objeto.fechamento_anterior;
Int32 volume = objeto.volume;
Int32 volume_financeiro = objeto.volume_financeiro;
Int32 negocio = objeto.negocio;
double oferta_de_compra = objeto.oferta_de_compra;
double oferta_de_venda = objeto.oferta_de_venda;
Int32 quantidade_ofertada_compra = objeto.quantidade_ofertada_compra;
Int32 quantidade_ofertada_venda = objeto.quantidade_fertada_venda;
double variação = objeto.variacao;
string status = objeto.status;
string fase = objeto.fase;
string cod = codigo;
bancotccEntities bc = new bancotccEntities();
var ac = from obj in bc.acao
where (obj.cpf == cepf && obj.codigo == cod)
select obj;
if (ac == null)
{
double vatotal_acao;
vatotal_acao = (quantidade * fechamento);
banco.inserirAcao(cepf, cod, empresa, tipo, data, hora, abertura, maxima, minima, media, fechamento, fechamento_anterior, volume, volume_financeiro, negocio,
oferta_de_compra, oferta_de_venda, quantidade_ofertada_compra, quantidade_ofertada_venda, variação, status, fase);
banco.inserirCarteira(cepf, cod, fechamento, quantidade, vatotal_acao);
}
else
{
carteira ca = bc.carteira.FirstOrDefault(obj => obj.cpf == cepf && obj.codigo == cod);
//int qt = ca;
ca.qtdacao = ca.qtdacao + quantidade;
//int nova_quant = ca.qtdacao + quantidade;
// int nova_quant = ca.qtdacao;
double valor = quantidade * fechamento;
ca.vtotalacao = ca.vtotalacao + valor;
//double novo_valor = ca.vtotalacao;
banco.atualizaAcao(cepf, codigo, empresa, tipo, data, hora, abertura, maxima, minima, media, fechamento, fechamento_anterior,
volume, volume_financeiro, negocio, oferta_de_compra, oferta_de_venda, quantidade_ofertada_compra,
quantidade_ofertada_venda, variação, status, fase);
// banco.atualizarCarteira(cepf, cod, fechamento, qt, total_acao);
// banco.atualizarCarteira(cpf, codigo, fechamento, quantidade, novo_valor);
}
}
catch (Exception e)
{
throw new Exception(e.Message.ToString());
}
/*catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
}*/
}
The method checks if the data exists, if it does not exist it inserts, this part has already been tested and is working, the problem is when it has data in the database. I'm trying to get the values from qdacao and vtotalacao, but the select that I'm using is not returning any values as shown below:
Returningmetheerror:
Objectreferencenotsettoaninstanceofanobject.
Nowtrytoselectasperthecodebelowbutonlychangetheerror:
var ca = (from obj in bc.carteira
where (obj.cpf == cepf && obj.codigo == cod)
select obj).First();
The string contains no elements
Can you help me?