Avatar billede BenedikteJ Nybegynder
22. december 2010 - 22:56 Der er 10 kommentarer og
1 løsning

Linq hjælp

I mit projekt henter jeg pt. imagelocation til picturebox ind vha. MySql fra min database. Jeg skal dog over og bruge LinQ i stedet og har oprettet selve dataclasses filen (DataClasses1.dbml) - se opbygning her: http://www.von-fancy.dk/Grafik/dataclasses1.jpg

Den kode jeg bruger pt. er:

MySqlConnection connection = new MySqlConnection("min connectionstring")

MySqlCommand sqlQuest = new MySqlCommand("SELECT fld_tekst FROM tbl_questions WHERE fld_id=@QID", connection);
            MySqlCommand sqlCommand = new MySqlCommand("SELECT fld_svar FROM tbl_answers WHERE fld_id=@LID", connection);
            MySqlCommand sqlRight = new MySqlCommand("SELECT fld_svar FROM tbl_answers WHERE fld_id=@RID", connection);

            sqlQuest.Parameters.Add("@QID", MySqlDbType.Int16).Value = 1;
            sqlCommand.Parameters.Add("@LID", MySqlDbType.Int16).Value = 1;
            sqlRight.Parameters.Add("@RID", MySqlDbType.Int16).Value = 2;
            connection.Open();

            object executeQuest = sqlQuest.ExecuteScalar();
            object executeLeft = sqlCommand.ExecuteScalar();
            object executeRight = sqlRight.ExecuteScalar();

            connection.Close();

            QuestionBox.ImageLocation = executeQuest.ToString();
            LeftAnswer.ImageLocation = executeLeft.ToString();
            RightAnswer.ImageLocation = executeRight.ToString();

Jeg kan ved djævlens vold og magt ikke finde ud af at få LinQ til at fungere. Jeg skal hente fld_tekst ind fra Questions'tabellen ind som imagelocation i QuestionBox.

Er der nogen der kan hjælpe? Jeg er ny indenfor c#/database/linQ så det er sikkert heller ikke stillet op på bedste måde.
Avatar billede johny Nybegynder
23. december 2010 - 09:30 #1
Først og fremmest, er det LINQToSQL eller LINQToEntities du vil forsøge dig med?

Derudover, når du siger du ikke kan få det til at virke, hvor langt når du så? Har du genereret en objektmodel f.eks.?
Avatar billede BenedikteJ Nybegynder
23. december 2010 - 09:38 #2
Hov ja selvfølgelig, det er LinQ to SQL jeg skal bruge.
Jeg har genereret min "linQ to sql" fil indeholdende mine klasser - går ud fra det er det du mener med objektmodel?
Avatar billede johny Nybegynder
23. december 2010 - 10:02 #3
Ok, hvad er det så præcist du ikke kan få til at virke? Er det syntaksen der driller, kan du ikke åbne en forbindelse, får du ingen resultater fra dine queries, eller hvad går der galt? :)
Avatar billede BenedikteJ Nybegynder
23. december 2010 - 10:07 #4
Det må være syntaksen. Når jeg laver en forbindelse og forsøger at hente ind i imagelocation til picturebox, får jeg intet frem.
Avatar billede johny Nybegynder
23. december 2010 - 10:12 #5
Hmm, kan du poste den LINQ kode du har lige nu så, samt evt. debugge værdien af følgende når du kører det via LINQ:
executeQuest.ToString();
executeLeft.ToString();
executeRight.ToString();
Avatar billede BenedikteJ Nybegynder
23. december 2010 - 10:33 #6
executeQuest.ToString();
executeLeft.ToString();
executeRight.ToString();

henter pt. jo bare ved SQL forespørgsel til databasen, ikke noget linQ indover der lige nu - det er de tre jeg skal have "omskrevet" så de ikke henter ved SQL forespørgsel til databasen, men gennem linQ...

Det eneste linQ jeg har skrevet ind lige nu er:

DataClasses1DataContext db = new DataClasses1DataContext(connection);

            IQueryable<string> questQuery = from f in db.Questions where f.ID == 1 select f.Tekst;

Hvordan den så kommer ned til imagelocationen har jeg ikke noget på ligenu. Har haft flere forskellige måder at skrive det på inde, men har ryddet alt det ud som ikke fungerede, derfor..
Avatar billede johny Nybegynder
23. december 2010 - 10:38 #7
Ok, har du prøvet med
string text = questQuery.Single();
efterfølgende?
Avatar billede BenedikteJ Nybegynder
25. december 2010 - 21:24 #8
Jeg prøvede med

string text = questQuery.Single();

QuestionBox.ImageLocation = text;

- det virkede ikke. Det gav en SQL syntaks fejl..

Jeg prøvede også med

QuestionBox.ImageLocation = questQuery.Single();

- hvilket gav samme SQL syntaks fejl...

Er jeg helt på vildspor? Kan simpelthen ikke greje det..
Avatar billede Knobtemor Nybegynder
11. marts 2011 - 11:31 #9
din dbml fil can du oprettet en instans af.

Hvis ud har kaldt den default navnet hedder den noget i stil med:
dataclasses.dbml.

Så det gør du ved at skrive:

dataclasses db = new dataclasses();

nu kan du anvende db instance til at søge i din database.

db.TableName.Where(Linq-syntax);
db.TableName.Single(Linq-syntax);

Inserts fungere via:
db.TableName.InsertOnSubmit(TableNameObject)
db.submitchanges(();

Der er faktisk super gode Linq guides på nettet. Det eneste man skal er "google it".
Avatar billede BenedikteJ Nybegynder
30. marts 2011 - 17:40 #10
Jeg fik det fikset men tak for hjælp.
Avatar billede Syska Mester
30. marts 2011 - 21:29 #11
Husk at skrive løsningen ned til andre som måtte have samme problem.

mvh
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