Estoy tratando de colorear un cuadro de texto leyendo un color asignado a un texto específico.

Este es mi código:

using (MySQLHelper LeftCurrent = new MySQLHelper())
{
    string mysql = "Select BandColor as LeftSideCurrentBandColor from band WHERE PnBanda LIKE '" + textBoxLeftSideCurrentBandColor.Text + "'";

    MySqlCommand LeftCurrentCommand = LeftCurrent.GetCommand(mysql);
    using (MySqlDataReader reader = LeftCurrentCommand.ExecuteReader())

    while (reader.Read())
    {
        textBoxLeftSideCurrentBandColor.BackColor = System.Drawing.Color.FromName(reader.GetString(0));
    }

Pero cada vez que cambio el texto especificado, el color no cambiará. ¿Cómo puedo hacer esto?

Tengo un cuadro de texto que se llena con uno de estos valores, N \ A, 108/5010/0300, 108/5015/0200, 108/5015/0900.

Cuando el cuadro de texto se llena con un valor, quiero colorearlo con el color especificado.

 1  N\A Red
 2  108/5010/0300   yellow
 3  108/5015/0200   DarkBlue
 4  108/5015/0900   white
1
enache vladd 6 mar. 2017 a las 11:50

2 respuestas

La mejor respuesta

Intente esto sin usar el bucle porque va a recuperar un valor correcto

using (MySQLHelper LeftCurrent = new MySQLHelper())
{
  string mysql = "Select BandColor as LeftSideCurrentBandColor from band WHERE PnBanda LIKE '" + textBoxLeftSideCurrentBandColor.Text + "'";

  MySqlCommand LeftCurrentCommand = LeftCurrent.GetCommand(mysql);
  textBoxLeftSideCurrentBandColor.BackColor = System.Drawing.Color.FromName((LeftCurrentCommand.ExecuteOracleScalar() ?? "RED").ToString());
}
0
imsome1 6 mar. 2017 a las 09:18

Si obtiene más filas si ese valor es una cadena nula o vacía, debería obtener una excepción. pero su depuración está bien, como se le dijo, pruebe SELECT TOP (1) o LIMIT 1, algo

0
Sezgin Akman 6 mar. 2017 a las 09:09