Ustanowienie połączenia z mysql

0

Witam
Chcę się połączyć z MySQL (zainstalowałem xampp). Niestety ciągle mam informację, że nie można się połączyć, dlaczego?

Class2.cs

namespace bazaDanych
{
    public class MySQL
    {
        public bool IS_CONNECTED = false;
        public MySQL(string database, string data_source, string userId, string password)
        {
            try
            {
                string mojepolaczenie = "SERVER=" + database + ";" +
                                        "DATABASE=" + data_source + ";" +
                                        "UID=" + userId + ";" +
                                        "PASSWORD=" + password + ";";
                MySqlConnection koneksja = new MySqlConnection(mojepolaczenie);
                if(Convert.ToBoolean(koneksja))
                {
                    IS_CONNECTED = true;
                }
            }catch(Exception e){
                IS_CONNECTED = false;
            }
        }
        public bool checkConnection()
        {
            return IS_CONNECTED;
        }
    }
}

W form1

MySQL baza = new MySQL("localhost", "test", "", "");
                if(baza.IS_CONNECTED == true)
                {
                    MessageBox.Show("poloczone");
                }
                else if(baza.IS_CONNECTED == false)
                {
                    MessageBox.Show("oops");
                }
1
  1. Skąd masz informację, że nie możesz się połączyć? Jaka jest jej dokładna treść?
  2. Jakim cudem chcesz skonwertować obiekt typu MySqlConnection do bool?
  3. Po co używasz jakiegoś IS_CONNECTED zamiast MySqlConnection.State.Open?
0
  1. mam takie coś:
    if(baza.IS_CONNECTED == false)
    {
    messagebox.show("oops");
    }
    co świadczy, że połączenia nie ma
  2. Aby się przekonać czy faktycznie dochodzi do połączenia
  3. Hmm... jestem ogólnie świeży jeśli chodzi o łączenie się z Mysql (c#->mysql), więc nie wiedziałem o tym.
0
etheros napisał(a):
  1. mam takie coś:
    if(baza.IS_CONNECTED == false)
    {
    messagebox.show("oops");
    }
    co świadczy, że połączenia nie ma

Nie, to świadczy tylko o tym, że w bloku try poleciał wyjątek. Ale to fakt - nie masz połączenia, bo nigdy go nie otwierasz. Nigdzie nie wywołujesz metody Open.

  1. Aby się przekonać czy faktycznie dochodzi do połączenia

Nie pytałem "po co" tylko JAKIM CUDEM. Bo jak na razie, to próbujesz z telewizora zrobić marchewkę i dziwisz się, że nie działa.
Bool to zmienna logiczna. Może mieć dwie wartości: prawda albo fałsz. Da się ją skonwertować np. ze zmiennej typu string o wartościach "true" albo "false". Albo np. ze zmiennej int na zasadzie, że 0 to fałsz, a wszystko inne to prawda. Ale w jaki sposób na bool skonwertować MySqlConnection?

Twój kod wywala się na bezsensownej próbie konwersji z MySqlConnection na bool, która nie ma prawa się powieść. Leci śliczny wyjątek, który Ty połykasz, ustawiasz IS_CONNECTED na false, i na tej podstawie stwierdzasz, że połączenie (którego nigdy nie wykonałeś) się nie powiodło.

Zamiast kombinować, sprawdź w dokumentacji jak się otwiera połączenie z bazą.

I nie łącz się z bazą w konstruktorze, bo konstruktor ma być niezawodny, wykonać się szybko i bezbłędnie, i zawsze zwrócić obiekt. To nie jest miejsce na odwoływanie się do zewnętrznych zasobów typu pliki, połączenia sieciowe, bazy danych, itd.

I nie nazywaj pól IS_CONNECTED, bo to wygląda okropnie. IsConnected jeżeli już.

0

Jej, ja jestem kompletnie zielony w tym :(
Na jakiej stronie mogę zobaczyć całą dokumentację?

0
etheros napisał(a):

Na jakiej stronie mogę zobaczyć całą dokumentację?

A skąd masz MySQL Connectora?
http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlconnection.html

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