protected void InserirProdutonaLista(int id, int idv, int unidades) { Autenticate(); SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString); con.Open(); string nome = ""; string marca = ""; string quantidade = ""; float precoporunidade = 0; String GetAtributos = "select ProdutosMarcas.Marca, Quantidade, Preco from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos"; SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con); comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", id); SqlDataReader dr = comandoGetAtributos.ExecuteReader(); ItemdoCarrodeCompras item; while (dr.Read()) { marca = dr["Marca"].ToString(); quantidade = dr["Quantidade"].ToString(); precoporunidade = float.Parse(dr["Preco"].ToString()); } dr.Close(); String GetPromocao = "select PrecoemDesconto from ProdutosPromocoes where FKId_Produtos=@FKId_Produtos and DatadeInicio <= GETDATE() and DatadeFim >= GETDATE()"; SqlCommand comandoGetPromocao = new SqlCommand(GetPromocao, con); comandoGetPromocao.Parameters.AddWithValue("@FKId_Produtos", id); SqlDataReader dr2 = comandoGetPromocao.ExecuteReader(); while (dr2.Read()) { precoporunidade = float.Parse(dr2["PrecoemDesconto"].ToString()); } dr2.Close(); String GetAtributo = "select Variedade from ProdutosVariedades where Id_ProdutosVariedades=@Id_ProdutosVariedades"; SqlCommand comandoGetAtributo = new SqlCommand(GetAtributo, con); comandoGetAtributo.Parameters.AddWithValue("@Id_ProdutosVariedades", idv); SqlDataReader dr3 = comandoGetAtributo.ExecuteReader(); while (dr3.Read()) { nome = dr3["Variedade"].ToString(); } dr3.Close(); if (Session["ListadeCompras"] == null) { Session["ListadeCompras"] = new ListadeItensdoCarrodeCompras(); } ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"]; item = new ItemdoCarrodeCompras(id, idv, nome, marca, quantidade, precoporunidade, unidades); lista.additem(item); lista.updateunidadestotaisdalista(); lista.updateprecototaldalista(); Session["ListadeCompras"] = lista; UpdateListadeCompras(); UDivVariedades.Visible = false; }
//adicionar public void additem(ItemdoCarrodeCompras item) { bool itsanewitem = true; foreach (ItemdoCarrodeCompras itemnalista in ListadeCompras) { if (itemnalista.getid() == item.getid() && itemnalista.getidv() == item.getidv()) { itsanewitem = false; itemnalista.setunidades(itemnalista.getunidades() + item.getunidades()); } } if (itsanewitem == true) { this.ListadeCompras.Add(item); } updateunidadestotaisdalista(); updateprecototaldalista(); }
//apagar public void deleteitem(ItemdoCarrodeCompras item) { ListadeCompras.Remove(item); }
protected void ButtonEntrar_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString); con.Open(); String VerificarLogin = "******"; SqlCommand comandoVerificarLogin = new SqlCommand(VerificarLogin, con); comandoVerificarLogin.Parameters.AddWithValue("@Email", TextBoxEmail.Text); SqlDataReader dr = comandoVerificarLogin.ExecuteReader(); int Count = 0; int Id_Contas = 0; bool Confirmada = false; while (dr.Read()) { Count = Int32.Parse(dr["Count"].ToString()); Id_Contas = Int32.Parse(dr["Id_Contas"].ToString()); Confirmada = bool.Parse(dr["Confirmada"].ToString()); } dr.Close(); bool canlogin = true; if (Session["PasswordsErradas"] != null) { if (Int32.Parse(Session["PasswordsErradas"].ToString()) >= 3) { canlogin = Validate(); } } if (canlogin == false) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('O captcha está errado.');", true); } //Se o utilizador for obrigado a preencher o captcha, e se o tiver preenchido corretamente if (canlogin) { //Se o email inserido estiver associado a uma conta if (Count == 0) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Este Email não existe.');", true); } else { //Se a conta estiver confirmada if (Confirmada == false) { Session["EmailporConfirmar"] = TextBoxEmail.Text; ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", " alert('Esta conta ainda não foi confirmada. Verifique o seu e-mail, enviámos-lhe uma mensagem sobre como confirmar a sua conta. Caso necessário, peça o reenvio do e-mail de confirmação.'); window.location.href = 'RecuperarConta.aspx';", true); } else { String ProcurarEstadodeBloqueio = "SELECT COUNT(*) FROM ContasBloqueios WHERE FKId_Contas=@FKId_Contas and Estado=1"; SqlCommand comandoProcurarEstadodeBloqueio = new SqlCommand(ProcurarEstadodeBloqueio, con); comandoProcurarEstadodeBloqueio.Parameters.AddWithValue("@FKId_Contas", Id_Contas); int Bloqueada = 0; if (comandoProcurarEstadodeBloqueio.ExecuteScalar() != null) { Bloqueada = Int32.Parse(comandoProcurarEstadodeBloqueio.ExecuteScalar().ToString()); } //Se a conta não estiver bloqueada if (Bloqueada == 1) { //Inserir a tentativa de login String InserirTentativadeLogin = "******"; SqlCommand comandoInserirTentativadeLogin = new SqlCommand(InserirTentativadeLogin, con); comandoInserirTentativadeLogin.Parameters.AddWithValue("@FKId_Contas", Id_Contas); comandoInserirTentativadeLogin.ExecuteNonQuery(); ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Esta conta foi bloqueada devido a demasiadas tentativas de login seguidas e sem sucesso. Verifique o seu e-mail, enviámos-lhe um e-mail para poder desbloquear a sua conta.');", true); } else { String Autenticar = "SELECT COUNT(*) FROM Contas WHERE Email=@Email and Palavrapasse=@Palavrapasse"; SqlCommand comandoAutenticar = new SqlCommand(Autenticar, con); comandoAutenticar.Parameters.AddWithValue("@Email", TextBoxEmail.Text); comandoAutenticar.Parameters.AddWithValue("@Palavrapasse", TextBoxPassword.Text); int temp2 = Convert.ToInt32(comandoAutenticar.ExecuteScalar()); //Se a palavra-passe inserida estiver correta if (temp2 == 1) { //Inserir a tentativa de login String InserirTentativadeLogin = "******"; SqlCommand comandoInserirTentativadeLogin = new SqlCommand(InserirTentativadeLogin, con); comandoInserirTentativadeLogin.Parameters.AddWithValue("@FKId_Contas", Id_Contas); comandoInserirTentativadeLogin.ExecuteNonQuery(); //Criar as sessões de utilizador String ProcurarNomeporId = "SELECT Nome FROM Contas WHERE Id_Contas=@Id_Contas"; SqlCommand comandoProcurarNomeporId = new SqlCommand(ProcurarNomeporId, con); comandoProcurarNomeporId.Parameters.AddWithValue("@Id_Contas", Id_Contas); string Nome = comandoProcurarNomeporId.ExecuteScalar().ToString(); Session["Utilizador"] = null; Session["Nome_Utilizador"] = null; Session["Email_Utilizador"] = null; Session["ListadeCompras"] = null; Session["EmailporConfirmar"] = null; Session["EmailporConfirmarFalhanoEnvio"] = null; Session["SenhaporMudar"] = null; Session["Utilizador"] = Id_Contas; Session["Nome_Utilizador"] = Nome; Session["Email_Utilizador"] = TextBoxEmail.Text; //Se o utilizador tiver qualquer lista de compras guardada, o servidor irá criar a sua sessão de compras //Obter a lista de compras atual String ProcurarListadeCompras = "SELECT Id_ListasdeCompras FROM ListasdeCompras WHERE FKId_Contas=@FKId_Contas and Estado='guardada'"; SqlCommand comandoProcurarListadeCompras = new SqlCommand(ProcurarListadeCompras, con); comandoProcurarListadeCompras.Parameters.AddWithValue("@FKId_Contas", Id_Contas); int IdListasdeCompras; if (comandoProcurarListadeCompras.ExecuteScalar() == null) { IdListasdeCompras = 0; } else { IdListasdeCompras = Int32.Parse(comandoProcurarListadeCompras.ExecuteScalar().ToString()); } if (IdListasdeCompras > 0) { //Obter o Id de todos os artigos nessa lista de compras String ProcurarArtigosnaListadeCompras = "SELECT FKId_ProdutosVariedades FROM ListasdeComprasEntradas WHERE FKId_ListasdeCompras=@FKId_ListasdeCompras"; SqlCommand comandoProcurarArtigosnaListadeCompras = new SqlCommand(ProcurarArtigosnaListadeCompras, con); comandoProcurarArtigosnaListadeCompras.Parameters.AddWithValue("@FKId_ListasdeCompras", IdListasdeCompras); List <int> IdArtigosnaListadeCompras = new List <int>(); SqlDataReader dr3 = comandoProcurarArtigosnaListadeCompras.ExecuteReader(); while (dr3.Read()) { IdArtigosnaListadeCompras.Add(Int32.Parse(dr3["FKId_ProdutosVariedades"].ToString())); } dr3.Close(); ListadeItensdoCarrodeCompras lista = new ListadeItensdoCarrodeCompras(); for (int i = 0; i < IdArtigosnaListadeCompras.Count; i++) { //Através do Id, obter a informação dos artigos e carregá-la para a variável de sessão String ProcurarAtributosdoArtigo = "SELECT * FROM ListasdeComprasEntradas left join ProdutosVariedades on ListasdeComprasEntradas.FKId_ProdutosVariedades = ProdutosVariedades.Id_ProdutosVariedades left join Produtos on ProdutosVariedades.FKId_Produtos = Produtos.Id_Produtos where ListasdeComprasEntradas.FKId_ProdutosVariedades=@FKId_ProdutosVariedades"; SqlCommand comandoProcurarAtributosdoArtigo = new SqlCommand(ProcurarAtributosdoArtigo, con); comandoProcurarAtributosdoArtigo.Parameters.AddWithValue("@FKId_ProdutosVariedades", IdArtigosnaListadeCompras[i]); SqlDataReader dr4 = comandoProcurarAtributosdoArtigo.ExecuteReader(); while (dr4.Read()) { ItemdoCarrodeCompras item = new ItemdoCarrodeCompras(Int32.Parse(dr4["Id_Produtos"].ToString()), Int32.Parse(dr4["Id_ProdutosVariedades"].ToString()), dr4["Nome"].ToString(), dr4["Marca"].ToString(), dr4["Quantidade"].ToString(), float.Parse(dr4["PrecoTotal"].ToString()), Int32.Parse(dr4["Unidades"].ToString())); lista.additem(item); } dr4.Close(); } Session["ListadeCompras"] = lista; } Response.Redirect("Produtos.aspx"); } //Se a palavra-passe estiver errada else { if (Session["PasswordsErradas"] == null) { Session["PasswordsErradas"] = 1; } else { Session["PasswordsErradas"] = Int32.Parse(Session["PasswordsErradas"].ToString()) + 1; } //Inserir a tentativa de login String InserirTentativadeLogin = "******"; SqlCommand comandoInserirTentativadeLogin = new SqlCommand(InserirTentativadeLogin, con); comandoInserirTentativadeLogin.Parameters.AddWithValue("@FKId_Contas", Id_Contas); comandoInserirTentativadeLogin.ExecuteNonQuery(); ///Ver as 10 últimas tentativas de login desta conta, nas últimas 24 horas String ProcurarTentativadeLogin = "******"; SqlCommand comandoProcurarTentativadeLogin = new SqlCommand(ProcurarTentativadeLogin, con); comandoProcurarTentativadeLogin.Parameters.AddWithValue("@Email", TextBoxEmail.Text); DateTime DatadeValidadedaContagem = DateTime.Now.AddDays(-1); comandoProcurarTentativadeLogin.Parameters.AddWithValue("@Data", DatadeValidadedaContagem); SqlDataReader dr3 = comandoProcurarTentativadeLogin.ExecuteReader(); int numerodetentativassemsucesso = 0; while (dr3.Read()) { if (Int16.Parse(dr3["Autenticado"].ToString()) != 1) { numerodetentativassemsucesso++; } else { numerodetentativassemsucesso -= 10; } } dr3.Close(); //Se a conta tiver sido vítima de 10 tentativas de login erradas, seguidas e num período de 24 horas, bloqueá-la if (numerodetentativassemsucesso == 10) { //Inserir o bloqueamento da conta na base de dados String InserirBloqueio = "INSERT INTO ContasBloqueios (FKId_Contas, Data, Estado) VALUES (@Id_Contas, @Data, @Estado)"; SqlCommand comandoInserirBloqueio = new SqlCommand(InserirBloqueio, con); comandoInserirBloqueio.Parameters.AddWithValue("@Id_Contas", Id_Contas); comandoInserirBloqueio.Parameters.AddWithValue("@Data", DateTime.Now); comandoInserirBloqueio.Parameters.AddWithValue("@Estado", 1); comandoInserirBloqueio.ExecuteNonQuery(); //Inserir o código associado ao bloqueio na base de dados, confirmando que este não se repete com qualquer outro código existente GeradordeCodigos Gerador = new GeradordeCodigos(); string CodigodeConfirmacao = ""; int CodigosEncontrados = 1; do { CodigodeConfirmacao = Gerador.GerarCodigo(50); String ProcurarporCodigodeConfirmacao = "SELECT COUNT(*) FROM ContasCodigosdeConfirmacao WHERE CodigodeConfirmacao=@CodigodeConfirmacao"; SqlCommand comandoProcurarporCodigodeConfirmacao = new SqlCommand(ProcurarporCodigodeConfirmacao, con); comandoProcurarporCodigodeConfirmacao.Parameters.AddWithValue("@CodigodeConfirmacao", CodigodeConfirmacao); CodigosEncontrados = Convert.ToInt32(comandoProcurarporCodigodeConfirmacao.ExecuteScalar()); } while (CodigosEncontrados != 0); try { //Enviar o código para o e-email associado à conta bloqueada SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 25); smtpClient.EnableSsl = true; smtpClient.Port = 587; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential("*****@*****.**", "abc123IO"); smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; MailMessage mail = new MailMessage("*****@*****.**", "*****@*****.**"); mail.Subject = "A sua conta foi bloqueada."; Uri uri = new Uri("http://*****:*****@FKId_Contas,@CodigodeConfirmacao, 1, 'false', GETDATE())"; SqlCommand comandoInserirCodigodeConfirmacao = new SqlCommand(InserirCodigodeConfirmacao, con); comandoInserirCodigodeConfirmacao.Parameters.AddWithValue("@FKId_Contas", Id_Contas); comandoInserirCodigodeConfirmacao.Parameters.AddWithValue("@CodigodeConfirmacao", CodigodeConfirmacao); comandoInserirCodigodeConfirmacao.ExecuteNonQuery(); ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Esta conta foi bloqueada devido a demasiadas tentativas de login seguidas e sem sucesso. Enviámos-lhe um e-mail para poder desbloquear a sua conta.');", true); } catch { //Quando a conta de e-mail [email protected] é bloqueada por suspeitas de spam, o programa entra no catch. É um problema básico em que me basta fazer login e confirmar a minha identidade //por telemóvel. ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Esta conta foi bloqueada devido a demasiadas tentativas de login seguidas e sem sucesso. Por outro lado não foi possível enviar-lhe um e-mail para poder desbloquear a sua conta, iremos enviar-lhe assim que possível. Pedimos desculpas pelo incómodo.');", true); } } else { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('A palavra-passe está errada.');", true); } } } } } } }
//Funções de inserção do produto protected void InserirProdutonaLista(int id, int unidades) { Autenticate(); SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString); con.Open(); //Verificar que o produto existe String ProcurarProduto = "select count(*) from Produtos where Id_Produtos=@Id_Produtos"; SqlCommand comandoProcurarProduto = new SqlCommand(ProcurarProduto, con); comandoProcurarProduto.Parameters.AddWithValue("@Id_Produtos", id); int temp = Convert.ToInt16(comandoProcurarProduto.ExecuteScalar().ToString()); if (temp == 1) { //Verificar se o produto tem ou não variedades String ProcurarVariedades = "select count(Variedade) from ProdutosVariedades where FKId_Produtos = @Id_Produtos"; SqlCommand comandoProcurarVariedades = new SqlCommand(ProcurarVariedades, con); comandoProcurarVariedades.Parameters.AddWithValue("@Id_Produtos", id); int temp2 = Convert.ToInt16(comandoProcurarVariedades.ExecuteScalar().ToString()); if (temp2 > 1) { //Se o produto ter diferentes variedades, preenche os campos na div UDivVariedades e fá-la visível para o utilizador escolher a sua variedade //esta nova div irá usar a função abaixo desta para inserir o produto na lista String GetAtributos = "select Imagem, Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos"; SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con); comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", id); SqlDataReader dr = comandoGetAtributos.ExecuteReader(); while (dr.Read()) { ProdutoImagemV.ImageUrl = dr["Imagem"].ToString(); LabelNomeV.Text = dr["Nome"].ToString(); LabelNomeV.Text += " " + dr["Marca"].ToString(); LabelNomeV.Text += " " + dr["Quantidade"].ToString(); LabelPrecoV.Text = dr["Preco"].ToString(); } dr.Close(); String Getvariedades = "select * from ProdutosVariedades where FKId_Produtos = @Id_Produtos"; SqlCommand comandoGetvariedades = new SqlCommand(Getvariedades, con); comandoGetvariedades.Parameters.AddWithValue("@Id_Produtos", id); SqlDataReader dr2 = comandoGetvariedades.ExecuteReader(); DropDownListVariedades.Items.Clear(); while (dr2.Read()) { ListItem ItemdeVariedade = new ListItem(); ItemdeVariedade.Text = dr2["Variedade"].ToString(); ItemdeVariedade.Value = dr2["Id_ProdutosVariedades"].ToString(); DropDownListVariedades.Items.Add(ItemdeVariedade); } dr2.Close(); HiddenFieldIdV.Value = id.ToString(); TextBoxUnidadesV.Text = unidades.ToString(); UDivVariedades.Visible = true; } else if (temp2 == 1) { //Se o produto não tiver nenhuma variedade, insere-se o produto na lista String GetAtributos = "select Nome, ProdutosMarcas.Marca, Quantidade, Preco from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos"; SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con); comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", id); string nome = ""; string marca = ""; string quantidade = ""; float precoporunidade = 0; SqlDataReader dr = comandoGetAtributos.ExecuteReader(); while (dr.Read()) { nome = dr["Nome"].ToString(); marca = dr["Marca"].ToString(); quantidade = dr["Quantidade"].ToString(); precoporunidade = float.Parse(dr["Preco"].ToString()); } dr.Close(); String GetPromocao = "select PrecoemDesconto from ProdutosPromocoes where FKId_Produtos=@FKId_Produtos and DatadeInicio <= GETDATE() and DatadeFim >= GETDATE()"; SqlCommand comandoGetPromocao = new SqlCommand(GetPromocao, con); comandoGetPromocao.Parameters.AddWithValue("@FKId_Produtos", id); SqlDataReader dr2 = comandoGetPromocao.ExecuteReader(); while (dr2.Read()) { precoporunidade = float.Parse(dr2["PrecoemDesconto"].ToString()); } dr2.Close(); String GetAtributo = "select Id_ProdutosVariedades from ProdutosVariedades where FKId_Produtos=@Id_Produtos"; SqlCommand comandoGetAtributo = new SqlCommand(GetAtributo, con); comandoGetAtributo.Parameters.AddWithValue("@Id_Produtos", id); int idv = 0; SqlDataReader dr3 = comandoGetAtributo.ExecuteReader(); while (dr3.Read()) { idv = Int32.Parse(dr3["Id_ProdutosVariedades"].ToString()); } dr3.Close(); if (Session["ListadeCompras"] == null) { Session["ListadeCompras"] = new ListadeItensdoCarrodeCompras(); } ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"]; ItemdoCarrodeCompras item; item = new ItemdoCarrodeCompras(id, idv, nome, marca, quantidade, precoporunidade, unidades); lista.additem(item); lista.updateunidadestotaisdalista(); lista.updateprecototaldalista(); Session["ListadeCompras"] = lista; UpdateListadeCompras(); } } con.Close(); }
//Abrir janela para editar item na lista de compras protected void ButtonEditarItemdaLista_Click(object sender, EventArgs e) { //Se o utilizador ter sessão Autenticate(); //Se o utilizador ter artigos na sua lista de compras if (Session["ListadeCompras"] == null) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Não tem nenhum artigo que possa atualizar.');", true); } else { //Se o utilizador ter seleccionado um item para editar if (GridViewListadeCompras.SelectedValue == null) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Seleccione o artigo que pretende atualizar.');", true); } else { //Se o item seleccionado existir na variável de sessão ListadeItensdoCarrodeCompras lista = (ListadeItensdoCarrodeCompras)Session["ListadeCompras"]; //Se o item seleccionado existir na base de dados, isto é feito com a mesma função com que se contam as variedades SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString); con.Open(); //Verificar se o produto tem ou não variedades String ProcurarProduto = "select count(*) from ProdutosVariedades where FKId_Produtos=@FKId_Produtos"; SqlCommand comandoProcurarProduto = new SqlCommand(ProcurarProduto, con); comandoProcurarProduto.Parameters.AddWithValue("@FKId_Produtos", GridViewListadeCompras.SelectedRow.Cells[2].Text); int temp = Convert.ToInt16(comandoProcurarProduto.ExecuteScalar().ToString()); if (temp <= 0) { ClientScript.RegisterStartupScript(this.GetType(), "Aviso", "alert('Este produto não está disponível de momento.');", true); } else { ELCHiddenFieldId.Value = GridViewListadeCompras.SelectedRow.Cells[2].Text; ELCHiddenFieldIdv.Value = GridViewListadeCompras.SelectedRow.Cells[3].Text; //Se o produto não tiver variedades ("Sem variedades"), o atributo nome vai ser tirado da tabela Produtos, e se o produto tiver variedades, o atributo nome vai ser tirado da tabela ProdutosVariedades String GetAtributos; if (temp == 1) { GetAtributos = "select Imagem, Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas where Id_Produtos=@Id_Produtos"; } //Obter a informação do produto da base de dados else { GetAtributos = "select Imagem, Variedade as Nome, ProdutosMarcas.Marca AS Marca, Preco, Quantidade from Produtos left join ProdutosMarcas on Produtos.Marca = ProdutosMarcas.Id_ProdutosMarcas left join ProdutosVariedades on Produtos.Id_Produtos=ProdutosVariedades.FKId_Produtos where Id_Produtos=@Id_Produtos and ProdutosVariedades.Id_ProdutosVariedades=@Id_ProdutosVariedades"; } SqlCommand comandoGetAtributos = new SqlCommand(GetAtributos, con); comandoGetAtributos.Parameters.AddWithValue("@Id_Produtos", GridViewListadeCompras.SelectedRow.Cells[2].Text); if (temp > 1) { comandoGetAtributos.Parameters.AddWithValue("@Id_ProdutosVariedades", GridViewListadeCompras.SelectedRow.Cells[3].Text); } SqlDataReader dr = comandoGetAtributos.ExecuteReader(); //Obter o número de unidades desejadas da variável de sessão ItemdoCarrodeCompras item = lista.getitematidv(Int32.Parse(ELCHiddenFieldIdv.Value)); //Configurar a página de edição do artigo while (dr.Read()) { ELCProdutoImagem.ImageUrl = dr["Imagem"].ToString(); ELCLabelNomeMarcaeQuantidade.Text = dr["Nome"].ToString(); ELCLabelNomeMarcaeQuantidade.Text += " " + dr["Marca"].ToString(); ELCLabelNomeMarcaeQuantidade.Text += " " + dr["Quantidade"].ToString(); ELCLabelPreco.Text = dr["Preco"].ToString(); } dr.Close(); if (item.getunidades() == 1) { ELCLabelItem.Text = item.getunidades() + " unidade por " + item.getprecototal() + "€"; } else if (item.getunidades() > 1) { ELCLabelItem.Text = item.getunidades() + " unidades por " + item.getprecototal() + "€"; } ELCTextBoxUnidades.Text = item.getunidades().ToString(); UDivEditarListadeCompras.Visible = true; } con.Close(); } } }