我想从我的.cshtml页面中的一个小函数中检索xml。它给我一个错误。但是,这在控制台/表单环境中运行良好。ASP.NET 4.0 - 从字符串转换为uniqueidentifier时转换失败!
它需要3个参数和1个例外。
myDll.GetXML(year, username, uniqueidentifier, out ex);
当我运行这个页面出现错误,“转换,从一个字符串转换为uniqueidentifier时失败了。”
或者一叠...
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)
在我的getXML功能它只是将参数应用于存储过程。商店程序将我的对象返回给我。从那里我可以在.cshtml中做所有有趣的事情。
当我手动输入SQL Management Studio中的值时,我确实得到了正确的结果。再次,当我创建一个Window Form应用程序时 - 我也得到了正确的结果!
当它归结为.cshtml或.aspx页面时 - 我得到转换失败。
我已经尝试铸造存储过程uniqueidentifier参数,它仍然给我那个错误。
我想......它是与唯一标识符......但我不知道该怎么办......
如果您发布了一些相关的代码和/或数据,这将有所帮助。 – LukeH 2010-08-16 23:17:58
提供调用System.CapTool.Server.DAL.DAL.GetCapabilitiesXML(Int32 fiscalYear,String majComId,String userName,Exception&exception)的代码 – Tahbaza 2010-08-17 02:52:42