C# a MySQL [zamknięte]

Jak w programie napisanym w C# połączyć się z bazą danych MySQL. Jakie funkcje służą do operacji na takiej bazie. Jeżeli ktoś posiada jakiś tutorial do tego, lub poradnik jak to bardzo bym prosił o namiary. Jeżeli istnieje jakaś książka poświęcona temu zagadnieniu, lub opisująca je także proszę o tytuł...

Powód zamknięcia: Udzielono odpowiedzi na pytanie, poprawna odpowiedź została zaakceptowana

  • Co prawda już trochę pytanie ma, ale że robiłem coś takiego na uczelnie ;-)

    na stronie MySQL znajdują się odpowiednie DLLki dla .NET - tak więc jest to prostsze niż można sobie wymarzyć ;-) - tylko będziesz musiał trochę poszperać, bo niestety adresu już sobie nie zapisałem ;-)

     public class dbInterface
        {
            private MySqlConnection SQLConn = new MySqlConnection();
    
            //połączenie z bazą danych
            //Exceptions:
                //System.Exception
            public void Open(string UID, string PASS, string ServerAddr, string dbName)
            {
                SQLConn.ConnectionString = "Server=" + ServerAddr + ";Database=" + dbName + ";Uid=" + UID + ";Pwd=" + PASS + ";";
    
                try
                {
                    SQLConn.Open();
                }
                catch (System.Exception e)
                {
                    throw new System.Exception(e.Message, e.InnerException);
                }
            }
    
            //zakończenie połączenia
            public void Close()
            {
                SQLConn.Close();
            }
    
            //Wykonuje zapytanie do bazu i zwraca jego wynik
            //Exceptions:
                //System.Exception
            public MySqlDataReader ExecuteReader(String command)
            {
                MySqlCommand comm = SQLConn.CreateCommand();
                comm.CommandText = command;
                try
                {
                    return comm.ExecuteReader();
                }
                catch (MySqlException exception)
                {
                    throw new System.Exception(exception.Message);
                }
            }
    
            //Wywołuje komende nie pobierającą żadnego wyniku (INSERT, UPDATE, DELETE) 
            //return: 
                //MySql.Data.MySqlClient.MySqlCommand ExecuteNonQuery
            //Exceptions:
                //System.Exception
            public int ExecuteNonQuery(String command)
            {
                MySqlCommand comm = SQLConn.CreateCommand();
                comm.CommandText = command;
                int ret;
                    try
                    {
                        ret = comm.ExecuteNonQuery();
                    }
                    catch (System.Exception exception)
                    {
                        throw new System.Exception(exception.Message);
                    }
                return ret;
            }
    
        }
    

    a tutaj taki, powiedzmy 'wrapper' - chyba pierwsza z rzeczy z C# - więc ostrożnie z tym ;-)

  • Można się pewnie połączyć przy pomocy kontrolek ODBC, ale nie robiłem tego więc bardziej Ci nie pomogę. Poszukaj w tym kierunku :)

  • A jeszcze prościej (i w wielu scenariuszach lepiej) - użyj NHibernate i gotowego providera dla MySQL... Dzisiaj poza niszowymi scenariuszami trudno uzasadnić samodzielne pisanie kodu dostępu do danych i zapytań w SQL-u.

  • Zainteresuj się nową technologią w wersji 3.5, która nazywa się LINQ. Dzięki niej mamy łatwy dostęp do wszystkich silników baz danych.

    Helion ma nawet osobną książkę o tym: http://helion.pl/ksiazki/cshtec.htm

Zaloguj się, aby dodać swoją odpowiedź