ROMULORU 0 Denunciar post Postado Março 20, 2009 Gostaria de saber onde está o erro no codigo, visto que só me retorna a mensagem (lblResposta.Text = "Algum Campo em Branco !") se a ultima linha do grid estiver em branco e a mensagem era p retornar em qualquer uma das linhas, ai me retorna a mensagem gravado com sucesso + nao grana pois algum campo está em branco, fora isso o codigo ta rodando uma beleza. Ai vai o codigo que estou fazendo. protected void lnkUpdate_Click(object sender, EventArgs e) { lblResposta.Visible = true; if (GridView1.Rows.Count > 0) { foreach (GridViewRow row in GridView1.Rows) { string TextBox1 = ((TextBox)row.FindControl("TextBox1")).Text; string TextBox2 = ((TextBox)row.FindControl("TextBox2")).Text; string TextBox3 = ((TextBox)row.FindControl("TextBox3")).Text; string textboxID = ((TextBox)row.FindControl("textboxID")).Text; if (String.IsNullOrEmpty(TextBox1)) { lblResposta.Text = "Algum Campo em Branco !"; } else if (String.IsNullOrEmpty(TextBox2)) { lblResposta.Text = "Algum Campo em Branco !"; } else if (String.IsNullOrEmpty(TextBox3)) { lblResposta.Text = "Algum Campo em Branco !"; } else { string stringConexao = WebConfigurationManager.ConnectionStrings["Conexao"].ConnectionString; SqlConnection con = new SqlConnection(stringConexao); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "sp_UpdatePedidos"; SqlParameter prmTitulo = new SqlParameter("@Quantidade1", SqlDbType.Int); prmTitulo.Value = TextBox1; cmd.Parameters.Add(prmTitulo); SqlParameter prmq1 = new SqlParameter("@Quantidade2", SqlDbType.Int); prmq1.Value = TextBox2; cmd.Parameters.Add(prmq1); SqlParameter q2 = new SqlParameter("@Quantidade3", SqlDbType.Int); q2.Value = TextBox3; cmd.Parameters.Add(q2); SqlParameter q3 = new SqlParameter("@id_prod", SqlDbType.Int); q3.Value = textboxID; cmd.Parameters.Add(q3); try { con.Open(); lblResposta.Text = "Gravado Com Sucesso!"; } catch (SqlException erro) { ///Informa a mensagem de erro, caso tenha acontecido algum erro ao conectar. lblResposta.Text = "Ocorreu um erro com a seguinte mensagem: " + erro.Message; } finally { ///Garante a execução do trecho abaixo independende do erro que acontecer. cmd.ExecuteNonQuery(); con.Close(); } } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 Movido de Plataforma.Net para Web Applications Coloque o cmd.ExecuteNonQuery(); dentro do Try, e não do Finally. Ai se der algum erro na hora de inserir ele vai cair no catch. O resto acredito estar ok. O único campo que você não verificou se foi preenchido é o textboxID, está certo isso? Compartilhar este post Link para o post Compartilhar em outros sites
ROMULORU 0 Denunciar post Postado Março 20, 2009 Esse textboxID foi uma maneira de pegar o id da linha e alterar akela linha, está correto. Mudei a posicação do cmd.ExecuteNonQuery(); e continua fazendo a mesma coisa, pois quando deixo um campo em branco na primeira linha o codigo continua em loop ate a ultima linha e na ultima linha ele entende como gravado com sucesso, e se eu deixar em branco a ultima linha como n vai + fazer loop ele da o erro como "algum campo em branco". Compartilhar este post Link para o post Compartilhar em outros sites
Bulle7s 0 Denunciar post Postado Março 20, 2009 Romuloru, e ai beleza? Entao tenta fazer o seguinte If( tavazio(text1) or tavazio(text2) or tavazio(text3)) resposta = " algum campo vazio" Else{ try { todos os parameters con.open() cmd.executenoquery } catchs { } finaly { con.close() } assim você garante q ele nao grava. ve se dah certo. Compartilhar este post Link para o post Compartilhar em outros sites
ROMULORU 0 Denunciar post Postado Março 20, 2009 Deu na mesma, na verdade quando tem algum campo em branco ele não grava, eu apenas quero deixar a mensagem de que nao gravou pq tem algum campo em branco entendeu? e mesmo nao gravando da a mensagem de gravado com sucesso. o codigo tá todo certo o unico problema é que nao ta retornando a mensagem de erro quanto tem algum campo em branco, só ce o campo estiver na ultima linha Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 21, 2009 if (String.IsNullOrEmpty(TextBox1)) { lblResposta.Text = "Algum Campo em Branco !"; break; } else if (String.IsNullOrEmpty(TextBox2)) { lblResposta.Text = "Algum Campo em Branco !"; break; } else if (String.IsNullOrEmpty(TextBox3)) { lblResposta.Text = "Algum Campo em Branco !"; break; } Assim, na primeira linha que tiver algum campo em branco ele vai parar a execução do resto. Detalhe, não seria melhor você primeiro verificar todas as linhas se estão todas preenchidas corretamente e só depois começar a inserir? Fazer dois loops no caso. Assim você garante que quando chegar no loop de inserir, todos os dados estão corretos. Compartilhar este post Link para o post Compartilhar em outros sites
ROMULORU 0 Denunciar post Postado Março 23, 2009 Valeu amigo, deu certo. Muito obrigado mesmo. Compartilhar este post Link para o post Compartilhar em outros sites