C# prenos funkcie

Programovacie jazyky, rady, poradňa...
tomsk
Light Expert
Light Expert
Príspevky: 50
Registrovaný: 30 jan 2010, 17:16

C# prenos funkcie

Príspevok od používateľa tomsk »

caute mam class:

Kód: Vybrať všetko

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace WindowsFormsApplication1
{
    static class GlobalFunkcie
    {

        public static string mysql_spojenie_sk()
        {
            string mysql_host = "localhost";
            string mysql_dbname = "name";
            string mysql_user = "user";
            string mysql_tajne = "password";
            MySqlConnection mysql_spojenie = new MySqlConnection("Database=(" + mysql_dbname + ");DataSource=(" + mysql_host + ");UserId=(" + mysql_user + ");Password=(" + mysql_tajne + ")");
        }
    }
}
a chcel by som tu funkciu vyvolat vo form1 ale nenapada ma ako skusal som uz plno veci ale ziadna nefungovala bol by som rad ak by mi niekto pomohol :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C# prenos funkcie

Príspevok od používateľa harrison314 »

Skus to viac specifikovat, albo

Kód: Vybrať všetko

GlobalFunkcie.mysql_spojenie_sk();
tomsk
Light Expert
Light Expert
Príspevky: 50
Registrovaný: 30 jan 2010, 17:16

Re: C# prenos funkcie

Príspevok od používateľa tomsk »

to vo form1 praveze mam a potom mam kod:

Kód: Vybrať všetko

mysql_spojenie.Open();
ktory je chybny a pise:

Kód: Vybrať všetko

Error	2	The name 'mysql_spojenie' does not exist in the current context	E:\client\Form1.cs	41	39	WindowsFormsApplication10
tomPD
Star
Star
Používateľov profilový obrázok
Príspevky: 679
Registrovaný: 17 okt 2005, 14:41
Bydlisko: Senec
Kontaktovať používateľa:

Re: C# prenos funkcie

Príspevok od používateľa tomPD »

mysql_spojenie je lokalna premenna, ktorej platnost je iba v ramci tej public metody mysql_spojenie_sk. Aby bola ta premenna viditelna je potrebne aby bola definovana ako public v ramci tej triedy GlobalFunkcie.
tomsk
Light Expert
Light Expert
Príspevky: 50
Registrovaný: 30 jan 2010, 17:16

Re: C# prenos funkcie

Príspevok od používateľa tomsk »

sak ja ju mam v class ako public.. hmm asi nechapem mozes mi to ukazat na priklade? dakujem ;)
skkiller2
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 95
Registrovaný: 06 dec 2008, 11:23
Kontaktovať používateľa:

Re: C# prenos funkcie

Príspevok od používateľa skkiller2 »

Co keby si to spojenie nastavil ako navratovu hodnotu tej metody teda

Kód: Vybrať všetko

public static MySqlConnection mysql_spojenie_sk()
{
    ...
    return mysql_spojenie;
}
a potom ked to budes chciet pouzit tak

Kód: Vybrať všetko

    MySqlConnection conn = GlobalFunkcie.mysql_spojenie_sk();
    conn.Open();
nechapem ale preco to robis takto skaredo statickymi metodami co takto pouzit interface IDisposable kde potom pekne mozes pouzit konstrukciu

Kód: Vybrať všetko

using(MySqlConnection conn = new MySqlConnection())
{
    conn.Open();
    //atd..
} 
kde potom po vykonani bloku using sa pekne zbavis resourcov, teda to co zrobis v Dispose() metode
tomsk
Light Expert
Light Expert
Príspevky: 50
Registrovaný: 30 jan 2010, 17:16

Re: C# prenos funkcie

Príspevok od používateľa tomsk »

dakujem vam ;)
Napísať odpoveď