webForumDet fria alternativet

NULL i en INT

3 svar · 356 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

Kan man få värdet null i en int på nått vis eller hur bör jag göra här?
Jag håller på att bygga upp en stored procedure med en parameter, CategoryID.
CategoryID hämtas från Request.Querystring och innehåller ett tal eller ingenting, dvs. när besökaren kommer till sidan första gången så finns inget id.
Nu får jag felet: Cannot convert null to 'int' because it is a value type

I koden sätter jag variabeln: CategoryID till en int men SP:n godkänner även värdet null.

int CategoryID;
if (Request.Querystring["CategoryID"] != null)
     CategoryID = Convert.Int32(Request.Querystring["CategoryID"]);
else
     CategoryID = null; [b]Krasch![/b]

myCommand.Parameters.Add("@CategoryID", SqlDbType.Int).Value = CategoryID;

Visst, jag skulle bara kunna köra en IF-tagg runt myCommand... men det känns fel det me.
Så, hur skriver man? :)

CompusaMedlem sedan jan. 20023 327 inlägg
#2

Kolla mer om nullable-types här, tror det är vad du söker:http://msdn2.microsoft.com/en-us/library/2cf62fcy.aspx

doggelitoMedlem sedan juni 20003 076 inlägg
#3

ahh! precis! exakt! :bire

emissionMedlem sedan dec. 19996 721 inlägg
#4

En annan variant är att göra så här:

CREATE PROCEDURE MinProcedur
@CategoryID int=NULL
AS
blablabla

och

if (Request.Querystring["CategoryID"] != null)
     Command.Parameters.Add("@CategoryID", SqlDbType.Int).Value = Convert.Int32(Request.Querystring["CategoryID"]);
133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)