SORU
29 Aralık 2010, ÇARŞAMBA


Nasıl bir sqlparameter null atamak?

Aşağıdaki kodu bir hata veriyor. - "int DBnull herhangi bir örtük dönüştürme."

SqlParameter[] parameters = new SqlParameter[1];    
SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);
planIndexParameter.Value = (AgeItem.AgeIndex== null) ? DBNull.Value : AgeItem.AgeIndex;
parameters[0] = planIndexParameter;

CEVAP
29 Aralık 2010, ÇARŞAMBA


Sorun ?: operatör olamaz ya int bir değer ya da uyumlu olmayan DBNull tür bir değer, dönen çünkü dönüş türünü belirlemek.

Elbette Ageİndex örneği ?: ihtiyacını tatmin edecek olan 5 ** yazın çevirebilirsiniz.

Aşağıdaki gibi ?? boş coalascing operatörü kullanabilirsiniz

SqlParameter[] parameters = new SqlParameter[1];     
SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);
planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value;
parameters[0] = planIndexParameter; 

Burada sorunu açıklayan MSDN documentation ?: santral bir alıntı

Ya first_expression ve second_expression türü aynı olmalıdır, ya da örtülü bir dönüşüm başka bir türü var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010
  • Valdorsha

    Valdorsha

    8 Mayıs 2006
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006