webForumDet fria alternativet
Logga in / Bli medlem

NULL i en INT

.NET

3 svar · 356 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Trådstart#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? :)

Medlem 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

Medlem sedan juni 20003 076 inlägg
#3

ahh! precis! exakt! :bire

Medlem 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"]);
257 ms totalt · 4 externa anrop · v20260731065814-full.7d626504
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)