none
Poner dos condiciones en un if RRS feed

  • 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>
    viernes, 25 de octubre de 2019 21:47

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ú

    viernes, 25 de octubre de 2019 22:07
  • 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.

    sábado, 26 de octubre de 2019 8:31

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ú

    viernes, 25 de octubre de 2019 22:07
  • 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"))

    viernes, 25 de octubre de 2019 22:22
  • 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.

    sábado, 26 de octubre de 2019 8:31
  • 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

    sábado, 26 de octubre de 2019 16:57
  • Perfecto, muchisimas gracias!!! Ese era el problema.

    Un millon!

    lunes, 28 de octubre de 2019 7:42