<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Invalid Cast on field in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622803#M16736</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;All you need to do is overload the method to accept a default value that allows you to specify the value you want returned in cases where the database value is null.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Function DatabaseToDouble(ByVal value As Object, ByVal defaultValue As Double) As Double
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If value Is DBNull.Value Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return defaultValue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return Convert.ToDouble(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 02:32:40 GMT</pubDate>
    <dc:creator>NeilClemmons</dc:creator>
    <dc:date>2021-12-12T02:32:40Z</dc:date>
    <item>
      <title>Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622794#M16727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to compare a double field:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;if ((double)_feature.get_Value(_feature.Fields.FindField("MYFIELD")) &amp;gt; 8.33)&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And I am getting an invalid cast error.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I used the same logic before in my code, and I can't quite figure out why this is not letting me do this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 18:56:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622794#M16727</guid>
      <dc:creator>KevinYanuk</dc:creator>
      <dc:date>2012-10-10T18:56:54Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622795#M16728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What do you get when you do this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;_feature.get_Value(_feature.Fields.FindField("MYFIELD")).ToString()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 19:02:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622795#M16728</guid>
      <dc:creator>GeorgeFaraj</dc:creator>
      <dc:date>2012-10-10T19:02:50Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622796#M16729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If the value in the field is null, you will not be able to cast it to double.&amp;nbsp; When there is a null value in a field, .net returns a dbnull.value which cannot be cast to a double even if the field type is double.&amp;nbsp; Perhaps this is the problem.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 19:16:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622796#M16729</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2012-10-10T19:16:19Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622797#M16730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;What do you get when you do this?&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;_feature.get_Value(_feature.Fields.FindField("MYFIELD")).ToString()&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;cannot perform the operator on "object" and "double"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;If the value in the field is null, you will not be able to cast it to double.&amp;nbsp; When there is a null value in a field, .net returns a dbnull.value which cannot be cast to a double even if the field type is double.&amp;nbsp; Perhaps this is the problem.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ah, I believe this is probably the case.&amp;nbsp; I will have to check tomorrow, but I'm pretty sure this is my problem.&amp;nbsp; Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 20:06:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622797#M16730</guid>
      <dc:creator>KevinYanuk</dc:creator>
      <dc:date>2012-10-10T20:06:42Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622798#M16731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;cannot perform the operator on "object" and "double"&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sure you can call ToString() on objects and doubles.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 20:17:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622798#M16731</guid>
      <dc:creator>GeorgeFaraj</dc:creator>
      <dc:date>2012-10-10T20:17:52Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622799#M16732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ToString will fail if the object is dbnull value.&amp;nbsp; Happens all the time, you have to check for that every time, it is a real pain.&amp;nbsp; If the type returned was a AO type, I would write an extension to check for that but I hesitate on writing extensions for type object.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 20:28:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622799#M16732</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2012-10-10T20:28:54Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622800#M16733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;ToString will fail if the object is dbnull value.&amp;nbsp; Happens all the time, you have to check for that every time, it is a real pain.&amp;nbsp; If the type returned was a AO type, I would write an extension to check for that but I hesitate on writing extensions for type object.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Indeed. You should already be checking for null values before calling any methods on it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Oct 2012 20:32:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622800#M16733</guid>
      <dc:creator>GeorgeFaraj</dc:creator>
      <dc:date>2012-10-10T20:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622801#M16734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;A simple solution to this problem is to create a class for reading and writing values to database fields.&amp;nbsp; Put the class into a common code library that you can reference in all of your projects.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is how you might write a method on that class for reading doubles:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Function DatabaseToDouble(ByVal value As Object) As Double
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If value Is DBNull.Value Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return Convert.ToDouble(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's how you would call it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim d As Double = whateverYouNamedThatClass.DatabaseToDouble(feature.Value(fieldIndex))&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You would add a method to the class for each data type you need (string, int, boolean, etc).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 02:32:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622801#M16734</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2021-12-12T02:32:37Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622802#M16735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The code assumes that nulls are to be treated the same as zero in all cases.&amp;nbsp; That is a decision you have to make to start with.&amp;nbsp; In my work, there are cases where that assumption is incorrect so that is something to think about.&amp;nbsp; You may also return Double.NaN but then you still have to check it before using it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Putting a not null constraint on the field with a default value of zero would avoid this problem to start with if you have that sort of control over the database.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Oct 2012 12:43:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622802#M16735</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2012-10-11T12:43:58Z</dc:date>
    </item>
    <item>
      <title>Re: Invalid Cast on field</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622803#M16736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;All you need to do is overload the method to accept a default value that allows you to specify the value you want returned in cases where the database value is null.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Function DatabaseToDouble(ByVal value As Object, ByVal defaultValue As Double) As Double
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If value Is DBNull.Value Then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return defaultValue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return Convert.ToDouble(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 02:32:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/invalid-cast-on-field/m-p/622803#M16736</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2021-12-12T02:32:40Z</dc:date>
    </item>
  </channel>
</rss>

