存储过程如下:
CREATE proc SP_Ext_AddDocument 
@ClassID int,
@DocTitle As varchar(300), 
@DocContent As ntext, 
@DocApprover As varchar(300), 
        @DocApproveDate As varchar(20), 
@DocApproved As int, 
        @DocType As Int, 
        @DocAttribute As int, 
@DocAddedBy As varchar(300), 
@DocAddedDate As Datetime,
          @CurrentDocID  [int] OUTPUT.cs代码如下:
//  data.MakeInParam("@ClassID",   SqlDbType.Int, 20, docbody.DocClassID),
 //  data.MakeInParam("@DocTitle",  SqlDbType.NVarChar, 300, docbody.DocTitle),
   //data.MakeInParam("@DocContent",SqlDbType.NVarChar, 5000,docbody.DocContent),
   //data.MakeInParam("@DocApprover",  SqlDbType.NVarChar,200, docbody.DocApprover),
   //data.MakeInParam("@DocApproveDate",  SqlDbType.NVarChar, 20, docbody.DocApproveDate),
  // data.MakeInParam("@DocApproved",  SqlDbType.Int, 1, docbody.DocApproved),
data.MakeInParam("@DocType",  SqlDbType.Int, 2, docbody.DocType),
data.MakeInParam("@DocAttribute",  SqlDbType.Int , 2, docbody.DocAttribute),data.MakeInParam("@DocAddedBy",  SqlDbType.NVarChar, 300, docbody.DocAddedBy),
   //data.MakeInParam("@DocAddedDate",  SqlDbType.DateTime, 300,DateTime.Parse(docbody.DocAddedDate)),
   //data.MakeOutParam("@CurrentDocID",  SqlDbType.Int, 2)  错误提示:
异常详细信息: System.Data.SqlClient.SqlException: 当前命令发生了严重错误。应放弃任何可能产生的结果。源错误: 
行 35:  public int RunProc(string procName, SqlParameter[] prams) {
行 36:  SqlCommand cmd = CreateCommand(procName, prams);
行 37:  cmd.ExecuteNonQuery();
行 38:  this.Close();
行 39:  return (int)cmd.Parameters["ReturnValue"].Value;
 源文件: E:\Aim-OA\UDS\Components\Database.cs    行: 37 堆栈跟踪: 
[SqlException: 当前命令发生了严重错误。应放弃任何可能产生的结果。]
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream) +723
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +196
   UDS.Components.Database.RunProc(String procName, SqlParameter[] prams) in E:\Aim-OA\UDS\Components\Database.cs:37
   UDS.Components.DocumentClass.AddDocBody(DocBody docbody) in E:\Aim-OA\UDS\Components\Document.cs:135[Exception: 文档正文增加错误!]
   UDS.Components.DocumentClass.AddDocBody(DocBody docbody) in E:\Aim-OA\UDS\Components\Document.cs:145
   UDS.SubModule.UnitiveDocument.Document.DeliverDocument.btnSubmit_Click(Object sender, EventArgs e) in E:\Aim-OA\UDS\SubModule\UnitiveDocument\Document\DeliverDocument.aspx.cs:210
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.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) +33
   System.Web.UI.Page.ProcessRequestMain() +1277 
我感觉是因为参数传递的问题,不知道如何修改呢?问题到底在哪里呢?

解决方案 »

  1.   

    我后来将.cs的参数和存储过程的参数对应,改成如下还是出错呢?data.MakeInParam("@ClassID",   SqlDbType.Int, 20, docbody.DocClassID),
       data.MakeInParam("@DocTitle",  SqlDbType.VarChar, 300, docbody.DocTitle),
       data.MakeInParam("@DocContent",SqlDbType.ntext, 5000,docbody.DocContent),
       data.MakeInParam("@DocApprover",  SqlDbType.VarChar,300, docbody.DocApprover),
       data.MakeInParam("@DocApproveDate",  SqlDbType.VarChar, 20, docbody.DocApproveDate),
       data.MakeInParam("@DocApproved",  SqlDbType.Int, 1, docbody.DocApproved),
       data.MakeInParam("@DocType",  SqlDbType.Int, 2, docbody.DocType),
       data.MakeInParam("@DocAttribute",  SqlDbType.Int , 2, docbody.DocAttribute),
       data.MakeInParam("@DocAddedBy",  SqlDbType.VarChar, 300, docbody.DocAddedBy),
       data.MakeInParam("@DocAddedDate",  SqlDbType.DateTime, 300,DateTime.Parse(docbody.DocAddedDate)),
       data.MakeOutParam("@CurrentDocID",  SqlDbType.Int, 2)