views:

76

answers:

2

I am trying to retrieve xml from a small function in my .cshtml page. Its throwing me an error. This however, runs fine in a console/form environment.

It takes 3 parameters and 1 exception.

myDll.GetXML(year, username, uniqueidentifier, out ex);

When I run this page I get the error, “Conversion failed when converting from a character string to uniqueidentifier.”

Or a stack of…

System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting from a character string to uniqueidentifier.

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()

   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

   at System.Data.SqlClient.SqlDataReader.get_MetaData()

   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)

   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)

   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)

   at System.CapTool.Server.DAL.DAL.GetCapabilitiesXML(Int32 fiscalYear, String majComId, String userName, Exception& exception)

Within my GetXML function it simply applies the parameters to a store procedure. The store procedure returns me my object. From there I can do all the fun stuff in .cshtml.

When I manually enter the values from within SQL Management Studio, I do in fact get the right result. Again, when I create a Window Form application – I too get the right result!

When it comes down to .cshtml or .aspx pages – I get the conversion failed.

I have already tried casting the store procedure uniqueidentifier parameter and it still gave me that error.

I THINK… It has something to do with unique identifiers… but I don’t know what to do…

+1  A: 

What are the types of your parameters and how are they being converted to SQL?

Run query analyzer and see what's actually happening at the database, it sounds like you might be adding or excluding "''" and the SQL can't convert correctly.

Doobi
As simple as that... Silly mistake I overlooked...If anyone gets this error in the future - just CHECK, CHECK, and CHECK again to make sure you are in fact passing a valid parameter.
Erik5388
A: 
myDll.GetXML(year, username, uniqueidentifier, out ex);

I am working in a "WebMatrix" environment. Thus (for now) not enabling syntax highlighting on things like "extra """"".

In the future I will check, check, and check again to make sure my parameters are valid.

Erik5388