Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - sql-select mit variablem spaltennamen
burn! - Fr 08.06.07 18:30
Titel: sql-select mit variablem spaltennamen
moin moin, hoffe mir kann jemand helfen.
versuche aus einem programm ein select command gegen eine datenbank abzusetzen. das problem dabei ist, das ich dabei einen variablen spaltennamen in der select anweisung habe.
mein versuch sah (gekürzt) bis jetzt so aus:
C#-Quelltext
1: 2: 3: 4:
| cmd.Parameters.Add("@name", SqlDbType.Char); cmd.Parameters["@name"].Value = "Spalte2"
cmd.CommandText = "SELECT @name FROM table WHERE id = 1" |
das problem ist, dass jetzt der wert "Spalte2" in die zeile als wert eingefügt und nicht als spaltenname erkannt wird.
vermute aus versuchen mit abfragen direkt auf der datenbank, dass der typ char nicht als spaltenname genügt.
vielleicht hat ja jemand hilfe parat.
p.s. nutze übrigens MS SQL Server 2005...
Danke
Burn
Robert_G - Mo 11.06.07 13:34
Titel: Re: sql-select mit variablem spaltennamen
burn! hat folgendes geschrieben: |
p.s. nutze übrigens MS SQL Server 2005... |
Das tut mir zwar leid, aber das ist ein anderes
Problem. ;)
Zitat: |
das problem ist, dass jetzt der wert "Spalte2" in die zeile als wert eingefügt und nicht als spaltenname erkannt wird.
vermute aus versuchen mit abfragen direkt auf der datenbank, dass der typ char nicht als spaltenname genügt.
vielleicht hat ja jemand hilfe parat. |
Parameter sind genauso Variablen, wie es in deinem C# Code auch wären. Du kannst also nicht pötzlich den Inhalt einer Variablen als Bezeichner verwenden (hier wäre es als Spalte).
was du machen kannst, ist das Statement selbst anzupassen, also den SQL-String.
Das ist auch nicht weiter tragisch, Spaltennamen haben ja nicht die gleichen Probleme, die mit überlangen Stringwerten, Kommazahlen oder Datumswerten auftauchen.
Kuzfassung: Statische teile eines SQL müssen auch tatsächlich direkt im SQL stehen, also Spalten, Tabellen, Funktionen, etc.
Sämtliche
Werte, die du an ein SQL Statement übergeben willst sollten als Parameter übergeben werden.
burn! - Mo 18.06.07 14:25
danke danke für die hilfe....
war ein wenig in meinen gedanken festgefahren.
natürlich war die einfachste lösung, einfach den sql-string anzupassen.
und so hat es auch ohne probleme funktioniert!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!