Zum Inhalt springen

[C#] Parameter in Sql-Command=?


Empfohlene Beiträge

Geschrieben

Das ist so ziemlich immer möglich, egal wie Du SQL bedienst. Willst Du mit PHP arbeiten oder wie?

Jedenfalls kannst Du den SQL-String zusammenbauen wie jeden anderen String auch.

Beispiel in PHP:

mysql_query("SELECT * FROM tabelle WHERE bedingung=$Variable", $sql_connection_id);

Hilft Dir das?

Geschrieben
Willst Du mit PHP arbeiten oder wie?

ich arbeite mit der C# Entwicklungsumgebung

und die datenbank ist MySql.

Mein Problem ist, das ich einen 2 Seite langen Sql-String habe und da mehrmals nach dem selben gefiltert wird,

da ich mit substrings arbeite, will ich die selbe Variable mehrmals im

Sql-Command gebrauchen.

Beispiel:

----------------

variable = "Hans"

SELECT * FROM tabelle WHERE Feld1 = variable AND

FELD2 = variable;

-----------------

wenn es soetwas gibt, wie schreib ich das hin?

Geschrieben

ne, eigendlich nicht.

ich würde gerne wissen ob es eine möglichkeit gibt

im Sql_Command eine Variable am anfang zu setzen und diese mehrfach im Command zu nutzen.

hier mein sql_Command:

An den Stellen wo du LIKE " ... " findest, will ich dahinter eine Variable

haben, da ich den Wert nur einmal z.B am anfang setzen will.

z.B.:

Variable1 ist bestelldatum = "2005%"

Variable2 ist status = "ib%";

--------------------------

SELECT

auftraege.auftragsnr,

auftraege.angebotsnr,

auftraege.auftragstyp,

auftraege.fk_anlagennr,

auftraege.auftragsstatus,

auftraege.kunde,

auftraege.bestellnrkunde,

auftraege.bestelldatum,

auftraege.beschreibung,

auftraege.produktbereich,

auftraege.projektleiterintern,

auftraege.verkaeufer,

auftraege.techasp,

auftraege.kaufmasp,

auftraege.waehrung,

auftraege.eingabedatum,

auftraege.eingegebenvon,

TempTable.Sollkosten_gesamt,

TempTable.Istkosten_gesamt,

TempTable.VkPreis_gesamt,

sum(auftragspositionen.vkpreis) as Auftragswert,

TempTable.Istkosten_Leistung,

TempTable.Sollkosten_Leistung,

TempTable.VkPreis_Leistung,

TempTable.Istkosten_Material,

TempTable.Sollkosten_Material,

TempTable.VkPreis_Material,

-- TempTable.Istkosten_Reise,

TempTable.Sollkosten_Reise,

TempTable.VkPreis_Reise

FROM (SELECT auftraege.*

FROM auftraege

WHERE auftraege.bestelldatum LIKE "2005%"

AND auftraege.auftragsstatus LIKE "%") As auftraege

LEFT JOIN auftragspositionen ON auftraege.auftragsnr = auftragspositionen.fk_auftragsnr

LEFT JOIN (SELECT auftraege.auftragsnr, sum(IFNULL(MaterialTable.Istkosten_Material,0) + IFNULL(LeistungsTable.Istkosten_Leistung,0)) as Istkosten_gesamt,

SUM(IFNULL(ReiseTable.Sollkosten_Reise,0) + IFNULL(MaterialTable.Sollkosten_Material,0) + IFNULL(LeistungsTable.Sollkosten_Leistung,0)) As Sollkosten_gesamt,

SUM(IFNULL(ReiseTable.VkPreis_Reise,0) + IFNULL(MaterialTable.VkPreis_Material,0) + IFNULL(LeistungsTable.VkPreis_Leistung,0)) As VkPreis_gesamt,

LeistungsTable.Istkosten_Leistung,

LeistungsTable.Sollkosten_Leistung,

LeistungsTable.VkPreis_Leistung,

MaterialTable.Istkosten_Material,

MaterialTable.Sollkosten_Material,

MaterialTable.VkPreis_Material,

ReiseTable.Sollkosten_Reise,

ReiseTable.VkPreis_Reise

FROM auftraege,

(SELECT auftraege.auftragsnr, Dienstleistungen.Sollkosten_Leistung As Sollkosten_Leistung,

sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten_Leistung,

Dienstleistungen.VkPreis_Leistung

FROM auftraege

LEFT JOIN dienstleistungserfassung

ON auftraege.auftragsnr = dienstleistungserfassung.fk_auftragsnr

LEFT JOIN (SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,

sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Leistung,

SUM(auftragspositionen.vkpreis) As VkPreis_Leistung

FROM auftragspositionen

WHERE auftragspositionen.leistungskategorie = "D"

GROUP BY fk_auftragsnr) As Dienstleistungen

ON auftraege.auftragsnr = Dienstleistungen.fk_auftragsnr

WHERE auftraege.bestelldatum LIKE "2005%"

AND auftraege.auftragsstatus LIKE "%"

GROUP BY auftraege.auftragsnr) As LeistungsTable,

(SELECT auftraege.auftragsnr, Materialkosten.Sollkosten_Material As Sollkosten_Material,

sum(materialkostenerfassung.menge*materialkostenerfassung.ekpreis) as Istkosten_Material,

Materialkosten.VkPreis_Material

FROM auftraege

LEFT JOIN materialkostenerfassung

ON auftraege.auftragsnr = materialkostenerfassung.fk_auftragsnr

LEFT JOIN

(SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,

sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Material,

SUM(auftragspositionen.vkpreis) As VkPreis_Material

FROM auftragspositionen

WHERE auftragspositionen.leistungskategorie = "M"

GROUP BY fk_auftragsnr) As Materialkosten

ON auftraege.auftragsnr = Materialkosten.fk_auftragsnr

WHERE auftraege.bestelldatum LIKE "2005%"

AND auftraege.auftragsstatus LIKE "%"

GROUP BY auftraege.auftragsnr) As MaterialTable,

(SELECT auftraege.auftragsnr, Reisekosten.Sollkosten_Reise As Sollkosten_Reise, Reisekosten.VkPreis_Reise

FROM auftraege

LEFT JOIN

(SELECT auftragspositionen.fk_auftragsnr, auftragspositionen.gepl_menge, auftragspositionen.gepl_einzelkosten,

SUM(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten_Reise,

SUM(auftragspositionen.vkpreis) As VkPreis_Reise

FROM auftragspositionen

WHERE auftragspositionen.leistungskategorie = "R"

GROUP BY fk_auftragsnr) As Reisekosten

ON auftraege.auftragsnr = Reisekosten.fk_auftragsnr

WHERE auftraege.bestelldatum LIKE "2005%"

AND auftraege.auftragsstatus LIKE "%"

GROUP BY auftraege.auftragsnr) As ReiseTable

WHERE auftraege.auftragsnr = LeistungsTable.auftragsnr

AND auftraege.auftragsnr = MaterialTable.auftragsnr

AND auftraege.auftragsnr = ReiseTable.auftragsnr

GROUP BY auftraege.auftragsnr) As TempTable ON auftraege.auftragsnr = TempTable.auftragsnr

GROUP BY auftraege.auftragsnr

-----------------------------------------------------------

Geschrieben

Es ist doch eine C# Frage. Den Select führst Du doch innerhalb von C# aus.

Du willst sowas machen: auftraege.bestelldatum LIKE "+bestelldatum+". Da ich aber kein C# kann weiss ich nicht die richtige Antwort bzw. ich habe da so spezielle Vermutungen wie es in anderen Sprachen gemacht wird.

Lass den Beitrag doch mal ins C# Forum verschieben.

Frank

Geschrieben
Es ist doch eine C# Frage.

Lass den Beitrag doch mal ins C# Forum verschieben.

Frank

nun, ich wollte ja nur wissen wie dazu die Syntax in MySql ist, falls

es überhaupt geht! aber ist ne gute Idee. Werde es im C#-Forum mal versuchen, vielleicht kann mir da weiter geholfen werden.

Aber wie verschieb ich diesen Beitrag in's C# Forum?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...