jonasfd Skrevet 25. april 2008 Del Skrevet 25. april 2008 Spørrring: SELECT Komponent.Komp_ID, Komponent.Komp_Name, Komponent.Prog_ID, Komponent.Rom_ID, Komponent.Type_ID, Komponent.Service, Komponent.IpAdress, Type.Type_ID AS Expr1, Type.Type_Navn, Type.Type_Brand, Rom.Rom_ID AS Expr2, Rom.Rom_Name, Rom.Rom_Code, Rom.Dep_ID, Department.Dep_ID AS Expr3, Department.Dep_Name, Department.Dep_Floor FROM Department INNER JOIN Rom ON Department.Dep_ID = Rom.Dep_ID INNER JOIN Komponent ON Rom.Rom_ID = Komponent.Rom_ID INNER JOIN Type ON Komponent.Type_ID = Type.Type_ID WHERE (Komponent.Komp_Name = [@Komponent.Komp_Name]) Error: error source: .Net sqlClient Data provider error message: invalid column name "@Komponent.Komp_name" Noen som har noen forslag til hva som kan være galt? Har prøvd en stund nå. Takk på forhånd. mvh Jonas Lenke til kommentar
kaffenils Skrevet 25. april 2008 Del Skrevet 25. april 2008 Hva er [@Komponent.Komp_Name]? Er @Komponent er table variable siden du skriver .Komp_Name? I såfall skal klammeparentesene være rundt hvert enkelt element slik: [@Komponent].[Komp_Name] Og selv om det er en table variable så er den jo ikke definert i FROM delen av spørringen. Lenke til kommentar
hockey500 Skrevet 26. april 2008 Del Skrevet 26. april 2008 (endret) kaffenils: selv om han ikke sier noe om dette, er @ tegnet man bruker foran variabler som skal settes inn i spørringen dynamisk. i PHP ville man kanskje skrevet $sql = "SELECT * FROM table WHERE a =" . $foo . " LIMIT 1;"; mens man i .NET bruker en annen måte, for å sikre input: connection.SqlParameters.Add("@CONST", "Verdi som skal sikres mot tull som SQL injections o.l her"); string sql = "SELECT * FROM table WHERE a = @CONST"; ... hvis jeg husker rett da... poenget er, alfakrøllen har ingenting med databasen å gjøre. hadde trådstarter sagt noe om programmeringsspråk og databasesystem, hadde det kanskje vært lettere å hjelpe også. Feilmeldingen tyder på at det er MS SQL. og hadde du fått en syntax error i spørringen hadde feilen faktisk hørt hjemme i denne kategorien også. dette hører vel heller til i .NET-kategorien Endret 26. april 2008 av hockey500 Lenke til kommentar
Manfred Skrevet 27. april 2008 Del Skrevet 27. april 2008 tror vi trenger litt mer kode her, ja. Det virker som om det er programmeringsteknisk, og ikke databaseteknisk. Lenke til kommentar
Kul drittunge Skrevet 27. april 2008 Del Skrevet 27. april 2008 Han har vel bare trodd at han kunne si where tbl.field = tbl.field og brukt en dått nætt funksjon som angir variabelnavn, ikke feltnavn. Lenke til kommentar
kaffenils Skrevet 27. april 2008 Del Skrevet 27. april 2008 kaffenils: selv om han ikke sier noe om dette, er @ tegnet man bruker foran variabler som skal settes inn i spørringen dynamisk. Nei sier du det. Det visste jeg ikke . Da har du sikkert hørt om table variabler som også prefixes med @, og siden jonasfd hadde skrevet @Komponent.Komp_Name spurte jeg rett og slett om det var en table variabel han på en eller annen snodig måte prøver å referere til. Lenke til kommentar
kaffenils Skrevet 27. april 2008 Del Skrevet 27. april 2008 hvis jeg husker rett da... poenget er, alfakrøllen har ingenting med databasen å gjøre. I .Net og SqlParameter har parameternavnet ALT med databasen å gjøre. Navnet du skriver inn i .Net MÅ matche parameternavnet i SQL statementet. I klassisk ADO var det ikke slik med mindre du satte NamedParameters=True, og da kun for stored procedures. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå