NULL i en INT

.NET

3 svar · 364 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"]);
254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)