sql server 2008 (version 10.50.2550).
i have select query return single column of type uniqueidentifier.
i want c# variable of type guid.
all of following methods result in exceptions.
reader of type sqldatareader.
using (var reader = command.executereader()) { if (reader.read()) { guid guid = reader.getguid(reader.getordinal("integ_schemehistoryid")); //1 guid guid = guid.parse((string)reader["integ_schemehistoryid"]); //2 guid guid = (guid)reader["integ_schemehistoryid"]; //3 guid guid = new guid((string)reader["integ_schemehistoryid"]); //4 guid guid = guid.parse(reader["integ_schemehistoryid"].tostring()); //5 } } error 1:
system.data.sqlclient.sqlexception (0x80131904): conversion failed when converting character string uniqueidentifier. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning() @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.hasmorerows() @ system.data.sqlclient.sqldatareader.readinternal(boolean settimeout) @ system.data.sqlclient.sqldatareader.read() @ simego.datasync.dynamiccolumns.datasourcerowoverride.get_epochschemehistoryid() error 2:
system.invalidcastexception: unable cast object of type 'system.guid' type 'system.string'. @ simego.datasync.dynamiccolumns.datasourcerowoverride.get_epochschemehistoryid() error 3:
system.data.sqlclient.sqlexception (0x80131904): conversion failed when converting character string uniqueidentifier. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning() @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.hasmorerows() @ system.data.sqlclient.sqldatareader.readinternal(boolean settimeout) @ system.data.sqlclient.sqldatareader.read() @ simego.datasync.dynamiccolumns.datasourcerowoverride.get_epochschemehistoryid() error 4:
system.invalidcastexception: unable cast object of type 'system.guid' type 'system.string'. @ simego.datasync.dynamiccolumns.datasourcerowoverride.get_epochschemehistoryid() error 5:
system.data.sqlclient.sqlexception (0x80131904): conversion failed when converting character string uniqueidentifier. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning() @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqldatareader.hasmorerows() @ system.data.sqlclient.sqldatareader.readinternal(boolean settimeout) @ system.data.sqlclient.sqldatareader.read() @ simego.datasync.dynamiccolumns.datasourcerowoverride.get_epochschemehistoryid()
there wrong either data or sql. first , third approaches should work - i'd use first form, it's clearest in view.
but @ stack trace:
... @ system.data.sqlclient.sqldatareader.readinternal(boolean settimeout) @ system.data.sqlclient.sqldatareader.read() @ simego.datasync.dynamiccolumns.datasourcerowoverride.get_epochschemehistoryid()
note it's read() call failing, not getguid or indexer.
my guess property being fetched several times, , sometimes works - why getting cast exception in second approach - some rows, fails due problem data or sql. we've no idea data coming from, can't beyond diagnosis, that's should next.
Comments
Post a Comment