Principales respuestas
Poner dos condiciones en un if

Pregunta
-
Hola,
Soy principiante en esto y llevo varios dias intentando hacer un programa pero me he atrancado con unas columnas.
El problema es que en un IF necesito que se cumplan alguno de los critetios A o B pero no soy capaz de ponerlo.
El primer criterio que seria: if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " ") me funciona pero me gustaria poner:
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " ") OR (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15")
El problema es que me da error al poner el or. ?Sabeis porque?
<style type="text/css">p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; background-color: #000000} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica; background-color: #000000; min-height: 11.0px} span.s1 {color: #0000ff} span.s2 {color: #a31515} </style>
Respuestas
-
Hola, y si pruebas asi
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " " OR dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15")
Votar y marcar respuestas es agradecer.
Saludos.
Lima-Perú- Marcado como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 22:24
-
El problema es que me da error al poner el or. ?Sabeis porque?
En C#, el OR no se escribe OR. Se pone con dos barritas verticales ||
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " " || dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15")
Observa que además de eso tenías mal puestos los paréntesis. Tienen que rodear a todo el "if", no a cada una de las partes.
- Marcado como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 22:25
Todas las respuestas
-
Hola, y si pruebas asi
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " " OR dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15")
Votar y marcar respuestas es agradecer.
Saludos.
Lima-Perú- Marcado como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 22:24
-
Hola Ruben Vaquez Fernandez:
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " ") OR (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15")
El if termina en el paréntesis. Or no encaja
Dos opciones. O eliminas el paréntisis de cierre de la primera expresión y de apertura de la siguiente (antes y despues del or), o envuelves las dos en un paréntesis.
if ((dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " ") OR (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15"))
-
El problema es que me da error al poner el or. ?Sabeis porque?
En C#, el OR no se escribe OR. Se pone con dos barritas verticales ||
if (dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == " " || dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString() == "15")
Observa que además de eso tenías mal puestos los paréntesis. Tienen que rodear a todo el "if", no a cada una de las partes.
- Marcado como respuesta Pablo RubioModerator miércoles, 30 de octubre de 2019 22:25
-
hola
acorta un poco el codigo usando
string valCol5 = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString(); if ( valCol5 == " " || valCol5 == "15"){ //codigo }
como veras se define todo entre parentesis
Valida si esa celda va a permitir un espacio, porque quizas debas usar el string.IsNullOrEmpty()
Aunque aplicaria una mejora, si vas a compara con valores numeriso deberias ver que sea un numero lo que tiene la celda
string valCol5 = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
int nroCol5= 0;
if(!int.TryParse(valCol5, out nroCol5)){
//si ingresa el valor no es numerico
} if ( valCol5 == " " || nroCol5 == 15){ //codigo }
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -