Avatar billede fynbo Nybegynder
21. juni 2004 - 02:07 Der er 9 kommentarer og
1 løsning

2 hurtige spørgsmål (database og while-statement)

Hej!

Har lige nogle enkelte spørgsmål.

Sidder og bikser med at hive nogle data ud af en Access database. Det går egentlig også fint nok, undrer mig bare over følgende:

1. The name 'strDbCustomerName' does not exist in the class or namespace 'Kundeprogram.Form1'
* KODE:
while (datareader.Read() ){
string strDbCustomerName = datareader["CustomerName"].ToString();
string strDbId = datareader["Id"].ToString();
string strDbEmail = datareader["Email"].ToString();
}
this.txtCustomerName.Text = strDbCustomerName;
-----
Hvorfor kan this.txtCustomerName.Text = strDbCustomerName; ikke stå ude for while'en? Står den inde i while'en, er der ingen problemer og navnet bliver pænt sat ind i tekstfeltet.

2. datareader, ExecuteReader, OleDbDataReader osv
Hvad svarer de til i PHP? Hvordan ville I skrive følgende kode i C#?
mysql_connect("localhost", "root", "pass");
mysql_select_db("kundebase");
$sql = "select * from kunder";
while($row = mysql_fetch_array($sql){
  ...
}
Avatar billede arne_v Ekspert
21. juni 2004 - 07:28 #1
re 1)

Du erklærer strDbCustomerName inden i while løkken og kan derfor
ikke bruge den udenfor.

Følgende bør compile:

string strDbCustomerName = null;
while (datareader.Read() ){
strDbCustomerName = datareader["CustomerName"].ToString();
string strDbId = datareader["Id"].ToString();
string strDbEmail = datareader["Email"].ToString();
}
this.txtCustomerName.Text = strDbCustomerName;

(jeg ved ikke hvad du vil bruge de 2 andre til ...)
Avatar billede arne_v Ekspert
21. juni 2004 - 07:31 #2
re 2)

Faktisk ligesom du gør !

        MySqlConnection con = new MySqlConnection("Database=kundebase;Data Source=localhost;User Id=root;Password=pass");
        con.Open();
        MySqlCommand sel = new MySqlCommand("SELECT * FROM kunder", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read()) {
            ...
        }
        rdr.Close();
        con.Close();
Avatar billede arne_v Ekspert
21. juni 2004 - 07:31 #3
Og et svar
Avatar billede fynbo Nybegynder
21. juni 2004 - 08:56 #4
1) Tak :)

2) Tak, det var nu ikke ligefrem med MySQL jeg tænkte på, men bare i almindelighed. Hvilken driver bruger I for at connecte til MySQL og skal den driver installeres på alle klienter?
Avatar billede arne_v Ekspert
21. juni 2004 - 09:17 #5
Jeg mener at mange er rigtigt glade for ByteFX driveren for MYSQL.

(og det er også den jeg bruger)
Avatar billede arne_v Ekspert
21. juni 2004 - 09:18 #6
SQLServer : erstat MySQL med Sql

OLE DB : erstat MySql med OleDb

ODBC : erstat MySQL med Odbc
Avatar billede fynbo Nybegynder
21. juni 2004 - 11:50 #7
Tak og en sidste ting. Skal ByteFX driveren distribueres sammen med filen?
Avatar billede fynbo Nybegynder
21. juni 2004 - 11:50 #8
Mente skal ByteFX driveren distribueres sammen med det færdige program?
Avatar billede arne_v Ekspert
21. juni 2004 - 12:08 #9
DLL filen skal
Avatar billede fynbo Nybegynder
21. juni 2004 - 12:19 #10
Tusind tak! :D Du har været guld værd :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester