Avatar billede page Nybegynder
27. januar 2008 - 17:58 Der er 28 kommentarer og
1 løsning

Hente data fra MySQL

Hej,

Jeg har oprettet forbindelse til MySQL ved hjælp af dette: http://web10.dk/help/faq/windows_mysql_net

Og det ser umiddelbart ud til at virke.
Men hvordan henter jeg data'en ud i en sql sætning??

mvh
page
Avatar billede nielle Nybegynder
27. januar 2008 - 18:15 #1
Sådan?

            conn.Open();

            string sql = "SELECT id, ditFelt1, ditFelt2 FROM dinTabel";

            SqlCommand cmd = new SqlCommand(sql, conn);

            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine("{0} {1} {2}", reader["id"], reader["ditFelt1"], reader["ditFelt2"]);
            }
            reader.Close();
            conn.Close();
Avatar billede nielle Nybegynder
27. januar 2008 - 18:16 #2
Hov...

            conn.Open();

            string sql = "SELECT id, ditFelt1, ditFelt2 FROM dinTabel";

            MySqlCommand cmd = new MySqlCommand(sql, conn);

            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine("{0} {1} {2}", reader["id"], reader["ditFelt1"], reader["ditFelt2"]);
            }
            reader.Close();
            conn.Close();
Avatar billede page Nybegynder
27. januar 2008 - 20:30 #3
hmm jeg får en fejl:

Compiler Error Message: BC30109: 'String' is a class type and cannot be used as an expression.

Line 20: conn.ConnectionString = myConnectionString
Line 21: conn.Open()
Line 22: string sql = "SELECT id, test1, test2 FROM Test";
Line 23:
Line 24:            MySqlCommand cmd = new MySqlCommand(sql, conn);
Avatar billede nielle Nybegynder
27. januar 2008 - 20:32 #4
Du mangler et ; i din linje 21.
Avatar billede nielle Nybegynder
27. januar 2008 - 20:33 #5
Samme i linje 20.
Avatar billede nielle Nybegynder
27. januar 2008 - 20:34 #6
Hov - det er jo VB.NET, ikke C# ... et øjeblik.
Avatar billede nielle Nybegynder
27. januar 2008 - 20:35 #7
conn.Open()

Dim sql As String = "SELECT id, ditFelt1, ditFelt2 FROM dinTabel"

Dim cmd As MySqlCommand = new MySqlCommand(sql, conn)

Dim reader As MySqlDataReader = cmd.ExecuteReader()
while (reader.Read())
{
    Console.WriteLine("{0} {1} {2}", reader["id"], reader["ditFelt1"], reader["ditFelt2"])
}
reader.Close()
conn.Close()
Avatar billede page Nybegynder
27. januar 2008 - 20:36 #8
hmm indsætter jeg ; de to steder, så får jeg en n y fejl:

Compiler Error Message: BC30037: Character is not valid.

Source Error:

Line 18:
Line 19: Try
Line 20: conn.ConnectionString = myConnectionString;
Line 21: conn.Open();
Line 22: string sql = "SELECT id, test1, test2 FROM Test";
Avatar billede page Nybegynder
27. januar 2008 - 20:38 #9
Jeg får samme fejl som min sidste kommentar..
Avatar billede nielle Nybegynder
27. januar 2008 - 20:54 #10
Nu var det jo mig som kom til at tro at du skrev C# og kom til at lave min kode derefter. Det undskylder jeg selvfølgeligt. :^|

I VB.Net skal linjer ikke afsluttes med et ;. Du skal derfor fjerne dem igen i linjerne 20 og 21.

Linje 22 og ned skal laves efter 27/01-2008 20:35:43.
Avatar billede page Nybegynder
27. januar 2008 - 20:59 #11
ok, så har jeg fjernet demigen.

Compiler Error Message: BC30082: 'While' must end with a matching 'End While'.

Source Error:

Line 26:
Line 27: Dim reader As MySqlDataReader = cmd.ExecuteReader()
Line 28: while (reader.Read())
Line 29: {
Line 30:    Console.WriteLine("{0} {1} {2}", reader["id"], reader["test1"], reader["test2"])

Jeg troede faktisk at reader.Close() lukkede whike løkken..
Avatar billede nielle Nybegynder
27. januar 2008 - 21:02 #12
* rødme *

While reader.Read()
    Console.WriteLine("{0} {1} {2}", reader["id"], reader["test1"], reader["test2"])
WEnd


reader.Close lukker for readeren og frigivere resourcerne. Den ar dog ikke noget med While-løkken at gøre.
Avatar billede page Nybegynder
27. januar 2008 - 21:06 #13
WEnd mener du vel While End, right?
Avatar billede page Nybegynder
27. januar 2008 - 21:07 #14
End While, må det blive..
Avatar billede nielle Nybegynder
27. januar 2008 - 21:15 #15
Sorry ... vist lidt VBScript der sneg sig in der.
Avatar billede page Nybegynder
27. januar 2008 - 21:17 #16
Jeg får en fejl i linie 30:

Compiler Error Message: BC30203: Identifier expected.

Source Error:


Line 28:
Line 29: While reader.Read()
Line 30:    Console.WriteLine("{0} {1} {2}", reader["id"], reader["test1"], reader["test2"])
Line 31: End While
Line 32:
Avatar billede erikjacobsen Ekspert
27. januar 2008 - 21:18 #17
...runde parenteser i VB.NET
Avatar billede page Nybegynder
27. januar 2008 - 21:25 #18
ok.. nu har jeg skiftet de kantede ud med et par runde. Men når jeg kører det igennem, så viser den ikkenoget på skærmen. Hverken fejl eller andet.

Skal jeg lave en udskriv.text = ???
Avatar billede erikjacobsen Ekspert
27. januar 2008 - 21:27 #19
Er det en webside, er Console.WriteLine ikke møj bevendt. Prøv med en Response.Write
Avatar billede nielle Nybegynder
27. januar 2008 - 21:29 #20
... og (i VB.Net):

Console.WriteLine("{0} {1} {2}", reader("id"), reader("test1"), reader("test2"))
Avatar billede page Nybegynder
27. januar 2008 - 21:34 #21
hmm ja det er en webside, undskyld jeg ikke har fået det felttet ind noget før.

Skifter console.WriteLine ud med Response.WriteLine, som Erik forslår, får jeg denne fejl:

Line 28:
Line 29: While reader.Read()
Line 30:    Response.Write ("{0} {1} {2}", reader("id"), reader("test1"), reader("test2"))
Line 31: End While
Line 32:
Avatar billede nielle Nybegynder
27. januar 2008 - 21:53 #22
Det er fordi at Response ikke virker på samme måde som Console mht. at benytte en formateringsstreng med {n}.

Det kan man omgå ved at bruge String.Format:

Response.Write( String.Format("{0} {1} {2}", reader("id"), reader("test1"), reader("test2")) )
Avatar billede nielle Nybegynder
27. januar 2008 - 21:56 #23
PS: du har skam angivet at det var en webside da du postede under ASP.NET ... bare mig som ikke kan læse ...

(... og som i øvrigt foretrækker at poste kode som Console-eksempler for at gøre dem så simple som mulige).
Avatar billede erikjacobsen Ekspert
27. januar 2008 - 22:03 #24
Til test er Response.Write helt i orden - ellers bør man bruge diverse ASP.NET komponenter (og kun bruge Response.Write i ganske særlig tilfælde). Næste skridt for dig vil være at få lagt resultatet af dine forespørgsel i en GridView.

Og så kan vi lave det simplere - syn's no'n:

Response.Write( reader("id") & " " & reader("test1") & " " & reader("test2")) )
Avatar billede page Nybegynder
27. januar 2008 - 22:08 #25
nielle 21:53:51 > Det virker.

Erik, jeg forøgte med din kommentar 22:03:05, men det gav en fejl:
Compiler Error Message: BC30205: End of statement expected.

Source Error:

Line 28:
Line 29: While reader.Read()
Line 30:    Response.Write( reader("id") & " " & reader("test1") & " " & reader("test2")) )
Line 31: End While
Line 32:
Avatar billede erikjacobsen Ekspert
27. januar 2008 - 22:08 #26
Jah, du får lov til at tælle parenteser - der er vist lidt for mange.
Avatar billede page Nybegynder
27. januar 2008 - 22:14 #27
jeps, en enkelt slut parentes for meget :)

Jeg vil nu kaste mig over at få lagt det over i et GridView. Vender sikkert tilbage om et par dage når jeg er gået i stå igen  :)

I skal begge have tak for hjælpen. Hvis i vil smide et svar, så skal i få point.
Avatar billede erikjacobsen Ekspert
27. januar 2008 - 22:17 #28
Ingen point til mig, tak.
Avatar billede nielle Nybegynder
27. januar 2008 - 22:25 #29
Svar :^)
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



IT-JOB