वाक्य रचना के लिए या भाव Visual Basic में

0

सवाल

मैं नहीं जानता कि Visual Basic के रूप में ज्यादा के रूप में मैं जानता हूँ कि C++ या C#.

मैं जा रहा हूँ अगर जाँच करने के लिए एक का चयन करें क्वेरी किसी भी परिणामों में लौटे, 'testDataset` और कुछ परिणाम है, तो मैं नीचे लिखा वाक्य रचना:

If ((testDataset Is Nothing) Or (testDataset.Tables Is Nothing) Or testDataset.Tables.Count = 0 _
    Or (testDataset.Tables.Item(0).Rows Is Nothing) Or (testDataset.Tables.Item(0).Rows.Count = 0) _
    Or (testDataset.Tables.Item(0).Rows(0) Is Nothing)) Then
    MessageBox.Show("Dataset has no results!", "Database Query Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return False
End If

C++ में जब एक अभिव्यक्ति के अंदर तार्किक या सच आता है अगले अभिव्यक्ति संसाधित नहीं किया जाएगा. लेकिन ऐसा लगता है कि यह मामला नहीं है Visual Basic. इसलिए मैं चाहता हूँ जानते हैं कि कैसे मैं जाँच कर सकते हैं कई भाव में visual basic और रोकने के प्रसंस्करण के अगले लोगों में से यदि एक सच आया.

तो मेरा सवाल यह है कि मुख्य रूप से कहा जा सकता है के रूप में दो सवाल:

  1. कैसे मैं जाँच कर सकते हैं कई की हालत का उपयोग कर या प्रसंस्करण के बिना अगले लोगों को?

  2. कैसे कर सकते हैं मैं अगर जाँच डेटासेट गया है परिणाम (कम से कम एक पंक्ति) और एक विशिष्ट स्तंभ में मौजूद है कि (कम से कम) एक पंक्ति?

dataset logical-or vb.net
2021-11-23 11:33:48
3

सबसे अच्छा जवाब

2

आप का उपयोग कर सकते हैं शून्य सशर्त ऑपरेटर के लिए शॉर्ट सर्किट उन सभी चेकों में एक पंक्ति है. के ? बाद में सदस्य इस श्रृंखला बंद हो जाएगा के मूल्यांकन के बाद सदस्यों और वापसी अशक्त यदि सदस्य रिक्त है ।

Return testDataset?.Tables?.Item(0)?.Rows?.Any() ' true if any, false if none
2021-11-23 15:30:43

यह एक दिलचस्प विचार करने के लिए कई जांच (+1). सवाल यह है कि क्यों डेटासेट एक अशक्त हो या तालिकाओं(0) अशक्त हो सकता है, आदि. मैं बहुत यकीन है कि है कि बस try-catch ब्लॉक के लिए पर्याप्त है ।
Maciej Los

@MaciejLos मैंने सीखा है का उपयोग करने के लिए अपवाद हैंडलिंग संयम से, या तो यह सुनिश्चित करने के लिए है कि अपने app दुर्घटना नहीं होगा (पकड़ सभी) के लिए या एक विशेष अपवाद के रूप में इस तरह UnauthorizedAccessException आदि., और जब भी संभव हो, नहीं में शामिल करने के लिए, अपने कार्यक्रम का तर्क. एक अपवाद असाधारण है, और नहीं होना चाहिए सामान्य माना जाता है । बेशक, अपने दृष्टिकोण काम करेंगे... लेकिन मैं सिर्फ देखा सेशन के तर्क के रूप में कुछ हो सकता है, जो सरल के साथ कुछ सुरुचिपूर्ण वाक्यविन्यास है. धन्यवाद के लिए +1
djv

@MaciejLos सही है? तो रखते हुए अशक्त चेक तर्क में, यह स्पष्ट है क्या यहाँ पर जा रहा है, जबकि एक Try...Catch बदलता है और obfuscates तर्क. इस के अधिक है एक सबसे अच्छा अभ्यास भेद, और शायद एक छोटे से बहुत दार्शनिक के लिए सेशन :)
djv

मैं कोशिश कर रहा था कहने के लिए कि मैं कभी नहीं लिखने के लिए एक कोड है जो रिटर्न अज्ञात परिणाम है । जब एक समारोह में मेरे द्वारा लिखा रिटर्न अशक्त () कुछ भी नहीं है मैं क्या यह जानबूझकर... मैं कर सकता हूँ के साथ सहमत नहीं "विसंगत तर्क" ;)
Maciej Los
1

इस overkill है पर जाँच के लिए Nothing. शायद आप एक बनाया है DataSet और यह भरा है के साथ एक DataTable. तालिका नहीं हो सकता है किसी भी पंक्तियों लौट आए लेकिन न तो DataSet और न ही DataTable कुछ भी नहीं है ।

यदि आप कर रहे हैं का उपयोग केवल एक ही है, तो, मेज के साथ बांटना डेटासेट.

Private dt As New DataTable

Private Sub GetData()
    Using cn As New SqlConnection(ConLocal),
            cmd As New SqlCommand("Select Top 10 * From Coffees", cn)
        cn.Open()
        Using reader = cmd.ExecuteReader
            dt.Load(reader)
        End Using
    End Using
End Sub

Private Function CheckTable() As Boolean
    If dt.Rows.Count > 0 Then
        Return True
    End If
    MessageBox.Show("Dataset has no results!", "Database Query Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return False
End Function
2021-11-23 12:32:53

के बाद से कई वहाँ हो सकता है अप्रत्याशित अवसरों (जैसे एक तालिका के रूप में जो अपने कॉलम में नहीं किया जा सकता है के रूप में की उम्मीद,...) है, तो मैं यकीन नहीं कर रहा हूँ कि जैसे स्तंभ x में मौजूद है, तो यह हो सकता है स्थिति है कि इन सभी की जांच कर रहे हैं आवश्यक (मुझे लगता है!)
VSB

@VSB मुझे यकीन है कि आप एक बिंदु है. इस कोड में, स्कीमा द्वारा निर्धारित किया जाता है परिणाम सेट तो कोई समस्या नहीं के साथ जोड़ा गया है या लापता कॉलम. मैं समझ DBA के लिए कर सकते हैं तोड़ने के परिवर्तन कभी कभी.
Mary
1

यह शायद नहीं है - एक सटीक जवाब है, लेकिन सामान्य सलाह...

सबसे छोटा रास्ता पकड़ने के लिए पढ़ने में त्रुटि डेटा से डेटासेट प्राप्त करने के लिए है में एक कोड की कोशिश करो पकड़ने.....अंत में ब्लॉक.

Dim bRetVal As Boolean = True
Try
   'your code to read data
Catch ex As Exception
    MessageBox.Show("Something went wrong..." & vbCrLf  & vbCrLf & ex.Message, "Error while reading data", MessageBoxButtons.OK, MessageBoxIcon.Error)
    bRetVal = False
Finally
  Return bRetVal
2021-11-23 19:07:07

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में