Enterprise Library- Data Block使用oracle存储过程,字符串参数传入值为""时出现问题的解决[1]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

 在调用存储过程时,产生如下错误:

Parameter 'p_R_URL': No size set for variable length data type: String.

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Exception: Parameter 'p_R_URL': No size set for variable length data type: String.

源错误:

行 67: 			catch(Exception ex)
行 68: 			{
行 69: 				throw new Exception(ex.Message);
行 70: 				//return false;
行 71: 			}

源文件: c:\inetpub\wwwroot\resource\datalay\dbresource.cs    行: 69

堆栈跟踪:

[Exception: Parameter 'p_R_URL': No size set for variable length data type: String.]
   ReSource.DataLay.DbResource.Insert(String R_TITLE, String R_USE, String R_XKML, String R_GRLB, String R_WJLB, DateTime R_ADDTIME, String R_URL, String R_PRIVATE, String R_COMMONT) in c:\inetpub\wwwroot\resource\datalay\dbresource.cs:69
   ReSource.BusLay.BusResource.Insert() in c:\inetpub\wwwroot\resource\buslay\busresource.cs:119
   ReSource.WebLay.MYRESOURCEAdd.Insert(Object sender, EventArgs e) in c:\inetpub\wwwroot\resource\weblay\tjzy\myresourceadd.aspx.cs:80
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
   System.Web.UI.Page.ProcessRequestMain() +1292

版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300

很是郁闷,于是就打开Enterprise Library的源代码进行调试。发现问题原来出现在 OracleCommandWrapper.cs文件中的 如下函数:(从345 行开始)

private OracleParameter CreateParameter(string name, DbType dbType, int size, ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value)
        
{
            OracleParameter param 
=&

本文关键:Enterprise Library- Data Block使用oracle存储过程,字符串参数传入值为""时出现问题的解决
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top