关于IBatisnet 从mssql转为oracle一个问题
由于之前系统是通过IBatisNet使用mssql数据库,后来客户说想改成为oracle,但转换中出现一个问题:
就是通过传输GUID参数时出现:错误"将参数值从 Guid 转换到 Byte[] 失败",使用mssql时是正常的。
<delete id="bw_Users_Delete" parameterClass="guid">
DELETE FROM bw_Users WHERE [UserId] = #value#
</delete>
一个做法,只能把所有GUID型变量改为string,但这样做法导致系统改动很大,请问有没有更好的方法,谢谢!
小弟第一次使用oracle,请各位大虾看看!以下为详细错误信息:
在 System.Data.OracleClient.OracleParameter.CoerceValue(Object value, MetaType destinationType)
在 System.Data.OracleClient.OracleParameter.SetCoercedValueInternal(Object value, MetaType metaType)
在 System.Data.OracleClient.OracleParameterBinding.PrepareForBind(OracleConnection connection, Int32& offset)
在 System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
在 System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
在 System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
在 IBatisNet.DataMapper.Commands.DbCommandDecorator.System.Data.IDbCommand.ExecuteNonQuery()
在 IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteUpdate(ISqlMapSession session, Object parameterObject)
在 IBatisNet.DataMapper.SqlMapper.Update(String statementName, Object parameterObject)
在 Botwave.Extension.IBatisNet.IBatisMapper.Update(String statementId, Object paramValue) 位置 E:\project\DGCM-ITSF-2010\OracleTest\Botwave.Extension.IBatisNet\IBatisMapper.cs:行号 43
在 Botwave.Security.IBatisNet.UserService.UpdateUser(UserInfo item) 位置 E:\project\DGCM-ITSF-2010\OracleTest\Botwave.Security.IBatisNet\UserService.cs:行号 24
在 contrib_security_pages_EditUser.btnEdit_Click(Object sender, EventArgs e) 位置 e:\project\DGCM-ITSF-2010\OracleTest\Web\contrib\security\pages\EditUser.aspx.cs:行号 147
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)