Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
SELECT-COMMAND per DropDownList den Wert NULL zuweisen
Maximus
myCSharp.de - Member



Dabei seit:
Beiträge: 97

Themenstarter:

SELECT-COMMAND per DropDownList den Wert NULL zuweisen

beantworten | zitieren | melden

Hallo,

ich habe folgendes Problem:

Ich habe folgende DropDownList (ddlFilterSpieltag):

Text | Wert
Alle Spiele anzeigen | ????-> HIER MUSS NULL ÜBERGEBEN WERDEN
1. Spieltag | 1
2. Spieltag | 2

Ein Gridview wird mittels einer SQLDataSource (sdsSpiele) gefüllt, wobei der Wert aus der DropDownList (ddFilterSpieltag) als Filter agiert:

SELECT...
FROM....
WHERE ( filter_spieltag IS NULL OR filter_spieltag = @filter_spieltag)

<asp:SqlDataSource ID="sdsSpiele" runat="server" ConnectionString="<%$ ConnectionStrings:BundesligaVerbindungsString %>"  SelectCommandType="StoredProcedure" SelectCommand="ErmittelSpiele">
<SelectParameters>
   <asp:ControlParameter ControlID="ddl_FilterSpieltage" Name="filter_spieltag" PropertyName="SelectedValue" Type="Int32" DefaultValue="1" />
</SelectParameters>
</asp:SqlDataSource>

PROBLEM: Damit kein Filter berücksichtigt wird muss dem SelectParamter der Wert NULL übergeben werden.
Alles funktioniert wenn ich einen Wert (1,2,3...) übergebe, wenn ich nichts übergeben kommt die Fehlermedlung: "Die Eingabezeichenfolge hat das falsche Format.".
Auch Versuche wie

ddlFilterSpieltag.Items[0].Vlaue = "NULL" 
oder ähnliches bringt mich nicht weiter.
Wo liegt mein Fehler?
Im voraus danke für Eure Hilfe.

Gruß
Maximus
Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.
private Nachricht | Beiträge des Benutzers
frisch
myCSharp.de - Member

Avatar #avatar-1724.gif


Dabei seit:
Beiträge: 2118
Herkunft: Coburg / Oberfranken

beantworten | zitieren | melden

Hallo Maximus,

versuchs mal mit:

ddlFilterSpieltag.Items[0].Value = DBNull.Value;

Ungetestet. Falls ers nicht nimmt probier einfach DBNull.Value.ToString()
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
private Nachricht | Beiträge des Benutzers
Maximus
myCSharp.de - Member



Dabei seit:
Beiträge: 97

Themenstarter:

beantworten | zitieren | melden

Hallo,

richtig ist :

ddlFilterSpieltag.Items[0].Value = DBNull.Value.ToString();

Jetzt kommt keine Fehlermeldung mehr, dafür habe ich aber ein neues Problem:

Obwohl der Wert der Drop-Down-List, jetzt NULL ist, findet der SELECT-COMMAND keine passende Zeile.
Hier mal der SQL-PARAMETER:

ALTER PROCEDURE dbo.ErmittelSpiele
	
	(
		@filter_spieltag int = NULL,
		@filter_heimteam int = NULL,
		@filter_gastteam int = NULL
	)
	
AS
	        SELECT A.spiel_id, A.spieltag_id, B.mannschafts_name, C.mannschafts_name, D.spieltag_datum, D.spieltag_name, D.spieltag_id
	        FROM Spiele A, Mannschaften B, Mannschaften C, Spieltage D
	        WHERE A.mannschaft_a = B.mannschafts_id AND A.mannschaft_b = C.mannschafts_id AND A.spieltag_id = D.spieltag_id AND (@filter_spieltag IS NULL OR [email protected]_spieltag) AND (@filter_heimteam IS NULL OR [email protected]_heimteam) AND (@filter_gastteam IS NULL OR [email protected]_gastteam);


Alle DefaultValues habe ich aus dem ControlParameter-Tag entfernt.
Ist es falsch den Datentyp auf "int" zusetzen?
Oder woran kann es sonst noch liegen?

Danke für Eure Hilfe.
Gruß
Maximus
Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.
private Nachricht | Beiträge des Benutzers
Yellow
myCSharp.de - Experte

Avatar #avatar-2347.png


Dabei seit:
Beiträge: 832

beantworten | zitieren | melden

hallo,

der Thread ist hier geschlossen und wird im Thread Datenbanken fortgesetzt.

-yellow
Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de
private Nachricht | Beiträge des Benutzers