Saturday, 15 August 2015

sql server - Unable to Retrieve GUID from MS SQL Table field -



sql server - Unable to Retrieve GUID from MS SQL Table field -

i must totally missing have kinds of info type fields in ms sql 2008 info tables , able retrive info correctly except newly added guid info (uniqueidentifier type). .net app has reader setup guid field, when step code , create assignment local object there never info in it, it's empty guid. running same stored procedure in ssms shows guids beingness picked in result set.

can give me clues might wrong or debugging tips? (visual studio 2008 .net 3.5, vb.net, ms sql server 2008 r1)

here vb.net idatareader

public class datareaderhelper implements idatareader private _reader idatareader private strfields() string public sub new(byval _datareader idatareader) ' load fields array uppercased field names in reader redim strfields(0 _datareader.fieldcount - 1) iindex integer = 0 _datareader.fieldcount - 1 strfields(iindex) = _datareader.getname(iindex).toupper next _reader = _datareader end sub public function fieldindex(byval fieldname string) integer ' returns ordinal position of named field ' in datareader, or -1 if field not found homecoming array.indexof(strfields, fieldname.toupper) end function #region "setobjectproperty overloads" ' type-specific overloads allow info object properties ' consistently populated values if encapsulated ' info reader contains info specified field name. public sub setobjectproperty(byval fieldname string, _ byref objectproperty guid) ' set guid object property if referenced field exists ' in info reader. if field not exist or null, ' set property empty guid. dim guidvalue guid dim intindex integer = fieldindex(fieldname) if intindex > -1 andalso not _reader.isdbnull(intindex) guidvalue = _reader.getguid(intindex) end if objectproperty = guidvalue end sub

the field name right , column index right. stepped throught code, line seems nil in getting value. guidvalue empty if _reader.getguid(intindex) nothing.

any help much appreciated, allow me know if need more info.

the best way figure out data-type of "i got issue" column..is this.

c# object obj = datareader.getvalue(123);

my vb.net effort of translation

dim obj object = datareader.getvalue(123)

"123" ordinal of select statement.

now, when code run, allow line (above) run. stop on breakpoint after line above.

then quickwatch or set mouse on it, , can figure out datatype , value.

.........

you should putting null checks around "setting".

c# code

if (!(datareader.isdbnull(123))) { string x = datareader.getstring(123); }

you'll have vb.net translation.

sql-server vb.net sql-server-2008

No comments:

Post a Comment