Trying to convert from c# string to SQL binary -
i building c# application needs work binary(16) unique identifiers in our sql server db. currently, application storing these string.
i hoping able pass unique id string varchar parameter , convert within sql statement, getting strange results.
    convert(binary(16), '0x6ec5cae61df38840b8efec2d5a158b3a', 1)     --desired: 0x6ec5cae61df38840b8efec2d5a158b3a     --actual: 0x307836454335434145363144463338383430423845464543324435413135   is there way convert in way? solution found in various places, haven't been able work. have tried other recommendations:
    convert(binary(16), '0x6ec5cae61df38840b8efec2d5a158b3a', [1-3])     convert(varbinary(16), '0x6ec5cae61df38840b8efec2d5a158b3a', [1-3])     convert(binary(16), '6ec5cae61df38840b8efec2d5a158b3a', [1-3])     convert(varbinary(16), '6ec5cae61df38840b8efec2d5a158b3a', [1-3])     cast('' xml).value('sql:variable("@variable")', 'binary(16)')   to no avail.
i can store these differently within application if preferable, i'm unsure datatype use? knowledge, there no binary equivalent in c#?
thanks in advance.
i wasn't able uniqueidentifier example work, solution coworker pointed out seems work.
    declare @id varchar(max)     declare @idnew binary(16)     set @id = '0x6ec5cae61df38840b8efec2d5a158b3a'     set @idnew = cast('' xml).value('xs:hexbinary(substring(sql:variable("@id"), 3) )', 'varbinary(max)')      select @idnew   i understand how xquery works, seems converting correctly.
with this, able pass c# string @id variable, convert, , use @idnew within sql statement.
edit:
credit/more info:
Comments
Post a Comment