Zmiana ikony w zależności od stanu w bazie.

0

Witam,

Posiadam PictureBox'a, który musi w zależności od stanu w bazie zmienić kolor... Mam stworzone odpowiednie ikony i teraz pytanie jak podmienić ikony w zależności od stanu ?

SqlCommand dataCommand = new SqlCommand();
                dataCommand.Connection = dataConnection;
                dataCommand.CommandType = CommandType.Text;
                dataCommand.CommandText =
                    "SELECT stan FROM XXX WHERE id =1 ";
 

Czyli np. "stan" = 1 to zielony, 2 to czerwony itd. ?

0
object val  = dataCommand.ExecuteScalar();
if(val!=null)
{
      int wartosc = System.Convert.ToIn32(val);
      switch(wartosc)
     {
          case 1:
          pictureBox1.Image = Image.FromFile(@"c:\zielony.bmp");
          break;
          case 2:
          pictureBox1.Image = Image.FromFile(@"c:\czerwony.bmp");
          break;
        ....
     }
}
 

Pseudo kod pisany na kolanie, ale mniej więcej powinien ci zobrazować jak to zrobić.

0

Mam błąd : "Element „WindowsFormsApplication2.Form1.pictureBox6_Click_1(object, System.EventArgs)” to „metoda”, co jest nieprawidłowe w danym kontekście".

Gdzie leży mój błąd i co robię źle ?

PS: Proszę o wyrozumiałość bo jestem bardzo początkujący :)

  private void pictureBox6_Click_1(object sender, EventArgs e)
        {
            SqlConnection dataConnection = new SqlConnection();

            try
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
                builder.DataSource = ".\\SQLEXPRESS";
                builder.InitialCatalog = "baza";
                builder.IntegratedSecurity = true;
                dataConnection.ConnectionString = builder.ConnectionString;
                dataConnection.Open();

                SqlCommand dataCommand = new SqlCommand();
                dataCommand.Connection = dataConnection;
                dataCommand.CommandType = CommandType.Text;
                dataCommand.CommandText =  "SELECT [stan] FROM [XXX] WHERE [id] = 5";

                object val = dataCommand.ExecuteScalar();

                
                {
                    int wartosc = System.Convert.ToInt32(val);
                    switch (wartosc)
                    {
                        case 0:

                            pictureBox6_Click_1.Image = Image.FromFile(@"c:\szary.png"); break; 

                        case 1:

                            pictureBox6_Click_1.Image = Image.FromFile(@"c:\zielony.png"); break;

                        case 2:

                            pictureBox6_Click_1.Image = Image.FromFile(@"c:\zielony.png"); break;

                    }


                }
            }
            catch (SqlException a)
            {
                Console.WriteLine("Error accesing the database ", a.Message);

            }

 
0
pictureBox6_Click_1.Image = Image.FromFile(@"c:\szary.png");

Co próbujesz osiągnąć? Bo jak na razie próbujesz użyć metody tak, jakby była obiektem jakiejś klasy.

0

Chcę aby wynik, który pobiorę z bazy zmieniał mi obrazek w picture box .
np. 1 = zielony. 2= czerwony itp.

0

To może jednak: pictureBox6.Image = Image.FromFile(@"c:\szary.png");?

0

Dzięki :) co prawda błędów nie ma ale ikonka i tak się nie zmienia... nie wiem dlaczego

0
  1. Po wczytaniu obrazka daj pictureBox6.Refresh();
  2. Jak nie zadziała to po komendzie ExecuteScalar daj MessageBoxa i niech ci wyrzuci co zwraca ci zapytanie. Będziesz wtedy wiedział, w której części kodu leży błąd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1