Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ROMULORU

[Resolvido] lbl resposta campo vazio

Recommended Posts

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.