sql - Inserting NaN value into a float column -
i need inserting nan value in float column 0 in sql server 2012.
the data have inserted database coming active directory , it's generated nan values, database column defined float because want values database , calculations.
dim value1 double sql = "insert usb_compliance (date,atc,value1,) values ('" & now.date & "','cmb','" & value1 &"' )"
first, never concatenate strings create sql statements.
security risk it's open door sql injection attacks.
use parameterized queries instead.
second, recommend using null
represent nan
values since 0.0 valid float value , nan
stands not number, , unknowable value, null
in sql server.
having said that, can use condition in vb.net this:
sub insertvalues(byval atc string, byval value1 double, byval d datetime) dim sql string = "insert usb_compliance (date,atc,value1,) values (@date, @atc,@value1)" ' sqlconnection con defined , set elsewhere dim cmd sqlcommand = new sqlcommand(sql, con) cmd .connection.open() .commandtype = commandtype.text .parameters.add("@date", sqldbtype.datetime).value = d .parameters.add("@atc", sqldbtype.nvarchar).value = atc .parameters.add("@value1", sqldbtype.float).value = iif(double.isnan(value1), dbnull.value, value1) .executenonquery() end end sub ' overload since optional parameter can't non-constant datetime.now sub insertvalues(byval atc string, byval value1 double) insertvalues(atc, value1, datetime.now) end sub
and call this:
insertvalues("cmb", value1) '' use now.date insertvalues("ert", value1, datetime.now.adddays(3)) '' insert date 3 days
Comments
Post a Comment