LINQ

2010-03-08 5 views
5

के साथ DBNull फ़िल्टरिंग निम्न क्वेरी NULL बैरल के लिए मान के साथ एक पंक्ति के लिए नीचे दी गई त्रुटि को क्यों बढ़ाती है जब मैं Where खंड में उन पंक्तियों को स्पष्ट रूप से फ़िल्टर करता हूं?LINQ

Dim query = From row As dbDataSet.conformalRow In dbDataSet.Tables("conformal") _ 
      Where Not IsDBNull(row.Cal) AndAlso tiCal_drop.Text = row.Cal _ 
      AndAlso Not IsDBNull(row.Tran) AndAlso tiTrans_drop.Text = row.Tran _ 
      AndAlso Not IsDBNull(row.barrel) _ 
      Select row.barrel 
If query.Count() > 0 Then tiBarrel_txt.Text = query(0) 

Run-time exception thrown : System.Data.StrongTypingException - The value for column 'barrel' in table 'conformal' is DBNull.

कैसे मेरी क्वेरी/शर्त के रूप में मैं इरादा काम करने के लिए फिर से लिखा जाना चाहिए?

उत्तर

7

डिफ़ॉल्ट रूप से, दृढ़ता से टाइप किए गए डेटासेट में, गुण उस अपवाद को फेंक देते हैं यदि फ़ील्ड शून्य है।

Dim query = From row As dbDataSet.conformalRow In dbDataSet.Tables("conformal") _ 
      Where Not row.IsCalNull() AndAlso tiCal_drop.Text = row.Cal _ 
      AndAlso Not row.IsTranNull() AndAlso tiTrans_drop.Text = row.Tran _ 
      AndAlso Not row.IsbarrelNull() _ 
      Select row.barrel 
If query.Count() > 0 Then tiBarrel_txt.Text = query(0) 

या DataRow.IsNull विधि:

Dim query = From row As dbDataSet.conformalRow In dbDataSet.Tables("conformal") _ 
      Where Not row.IsNull("Cal") AndAlso tiCal_drop.Text = row.Cal _ 
      AndAlso Not row.IsNull("Tran") AndAlso tiTrans_drop.Text = row.Tran _ 
      AndAlso Not row.IsNull("barrel") _ 
      Select row.barrel 
If query.Count() > 0 Then tiBarrel_txt.Text = query(0) 
+1

क्या [फ़ील्ड] नल() विधि पूरी तरह से काम करती हैं! धन्यवाद! – Steven

0

यह मेरे लिए काम किया आप उत्पन्न Is[Field]Null विधि का उपयोग करने की जरूरत है।

Dim query = From row As dbDataSet.conformalRow 
     In dbDataSet.Tables("conformal") _ 
     Where row.Cal.Length > 0 AndAlso tiCal_drop.Text = row.Cal _ 
      AndAlso row.Tran.Length > 0 AndAlso tiTrans_drop.Text = row.Tran _ 
      AndAlso row.barrel.Length > 0 _ 
     Select row.barrel 
संबंधित मुद्दे