checkbox ? boolean, bit and int16 - datasource controls?

  • Thread starter Thread starter jobs
  • Start date Start date
J

jobs

What's messed up here is that i have close to identical code that is
working perfectly, only difference is that code uses sqldatasource
control instead objectdatasource used here.

Getting this error during the update:

Server Error. To return to your data and retry, use the BACK button
System.ArgumentException: Object of type 'System.Int16' cannot be
converted to type 'System.Boolean'. at
System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo
culture, BindingFlags invokeAttr) at System.Reflection.MethodBase

Column in table :
bit

formview control:
<asp:CheckBox ID="Active"
SkinID="retailer" runat="server" Checked='<%# Bind("Active") %>' />


vb class:
ByVal active As Boolean

..Parameters.Add("@Active", SqlDbType.Bit).Value = Active


Objectdatasource update parm:

<asp:Parameter Name="Active" Type="Int16" DefaultValue="1" />


The data displays perfect with the checkbox checked while in edit.

Thanks for any help or information.
 
The problem is that you can implicitly convert from bit to int16 when
displaying the data, but you cannot convert from int16 to bit when saving
the data.

Change your parameter as follows (not tested):

<asp:Parameter Name="Active" Type="Boolean" DefaultValue="true" />
 
Back
Top