क्या वीबीएनईटी में निरर्थक प्रकार का उपयोग किया जा सकता है? यदि हां, तो क्या एक Nullable Integer होना संभव है जिसे मैं ऐसे क्षेत्र के साथ उपयोग कर सकता हूं जो SQL सर्वर में NULL स्वीकार करता है? उदाहरणों की सराहना की जाएगी।वीबीएनईटी में निरर्थक प्रकार?
उत्तर
आप वीबी में एक पूर्णांक में Null
, Nothing
या DBNull
असाइन नहीं कर सकते हैं। आप इसे पूरा करने के बजाय Nullable(Of Integer)
का उपयोग कर सकते हैं, या Object
में पूर्णांक मान बॉक्स कर सकते हैं (जो Nothing
हो सकता है)।
.NET में इंटेजर्स (System.Int32
आदि) सीधे नहीं हैं; हालांकि, Nullable-of-T
है जो आपको किसी भी मूल्य-प्रकार को शून्य-आइश बनाने की अनुमति देता है। ध्यान दें कि आपको के विरुद्ध null
/Nothing
के बजाय डेटाबेस को जांचना पड़ सकता है।
तो हाँ, आप कुछ बहुत समान कर सकते हैं।
नहीं। डेटाबेस में शून्य पाने के लिए आपको उस मान को जोड़ने (या अपडेट) करने के लिए सम्मिलित या अद्यतन क्वेरी को संशोधित करना होगा।
वीबी.Net में शून्य प्रकार हैं, उन्हें निम्नलिखित दो अलग-अलग तरीकों से घोषित किया जा सकता है।
Dim iNullable As Integer?
या
Dim iNullable As Nullable(Of Integer)
असल में [3 तरीके] हैं (https://msdn.microsoft.com/en-us/library/ms235245 .aspx): मंद iNullable? इंटीजर के रूप में –
मामलों Nothing
की एक संख्या में डिफ़ॉल्ट मान के लिए परिवर्तित कर दिया जाएगा। Nothing
का उपयोग करने के लिए उसी तरह आप null
का उपयोग करेंगे, आपको इसे सही शून्य प्रकार में डालना होगा।
Dim str As String
Dim int As Nullable(Of Integer) ' or use As Integer?
Dim reader As SqlDataReader
Dim colA As Integer = reader.GetOrdinal("colA")
Dim colB As Integer = reader.GetOrdinal("colB")
str = If(reader.IsDBNull(colA), DirectCast(Nothing, String), reader.GetString(colA))
int = If(reader.IsDBNull(colB), DirectCast(Nothing, Nullable(Of Integer)), reader.GetInt32(colB))
केवल जिस तरह से मैं शून्य के प्रवेश करने के लिए ग्राहक कोड से डाटाबेस में पता (के रूप में सवाल नीचे टिप्पणी में पूछा) एसक्यूएल में डिफ़ॉल्ट मान NULL के बराबर उपयोग करने के लिए है। कहीं कोड में
create proc dbo.UpdateSomeTable
@Id int,
@Status bit = NULL
as
begin
update dbo.SomeTable
set Status = @Status
where Id = @Id
end
और
Dim pars As List(Of SqlParameter) = New List(Of SqlParameter)
With pars
.Add(New SqlParameter("@Id", LogbookNoteId))
If Flag Then
.Add(New SqlParameter("@Status", Flag))
End If
End With
ExecuteNonQuery("dbo.UpdateSomeTable", pars, CommandType.StoredProcedure)
- 1. वीबीएनईटी का इतिहास निरर्थक वाक्यविन्यास
- 2. वीबीएनईटी - निरर्थक दिनांक समय और टर्नरी ऑपरेटर
- 3. निरर्थक चर प्रकार - .value सदस्य
- 4. सी # निरर्थक प्रकार और मूल्य संपत्ति
- 5. निरर्थक प्रकार GetType() अपवाद फेंकता है
- 6. वीबीएनईटी
- 7. वीबीएनईटी
- 8. वीबीएनईटी अंतर्निहित सिस्टम प्राप्त करें। टाइप करने योग्य प्रकार
- 9. निरर्थक GUID
- 10. वीबीएनईटी
- 11. बॉक्सिंग/अनबॉक्सिंग और निरर्थक?
- 12. वीबीएनईटी
- 13. वीबीएनईटी
- 14. वीबीएनईटी
- 15. वीबीएनईटी
- 16. वीबीएनईटी
- 17. वीबीएनईटी
- 18. वीबीएनईटी
- 19. वीबीएनईटी
- 20. वीबीएनईटी
- 21. वीबीएनईटी
- 22. वीबीएनईटी
- 23. वीबीएनईटी
- 24. वीबीएनईटी
- 25. वीबीएनईटी
- 26. वीबीएनईटी
- 27. वीबीएनईटी
- 28. वीबीएनईटी
- 29. वीबीएनईटी
- 30. वीबीएनईटी
वास्तव में, आप VB.NET में एक पूर्णांक के लिए कुछ भी नहीं प्रदान कर सकते हैं:
तो अद्यतन/सम्मिलित संग्रहीत प्रक्रिया में आप की तरह कुछ का उपयोग कर सकते 'एक इंटीजर = कुछ भी नहीं' लेकिन उसके बाद, निम्नलिखित सत्य है: 'a = 0' – Jochen