cmd.ExecuteNonQuery();
未升级前正常执行,升级后,老提示错误,不知所以。System.Data.SqlClient.SqlException: 当前命令发生了严重错误。应放弃任何可能产生的结果。

解决方案 »

  1.   

    个别人特别倒霉没有办法。参数里面不声明类型就可能出现错误。
    arrParameter[0]=new SqlParameter("@Admin",model.Admin);虽然我基本都这么写,但没有发现过报告,但见过个别人出过问题。
      

  2.   

    你把你的代码贴出来看一下。大家确认没有问题的话。你把你的ADO重新装一下。
      

  3.   

    我觉得是sql的sp4限制了什么东西,在两个机器上试过,都是这个现象。sp4补丁打上就不行了
      

  4.   

    权限问题啊
    要ASPNET对那个数据库的写权限
      

  5.   

    建议重新安装sp4试试,感觉不应该是sp4的问题,除非打补丁的时候不太成功损坏了一些文件
      

  6.   

    SqlParameter[] prams;
    prams=new SqlParameter[]{  prams[0] = new SqlParameter("@ClassID",   SqlDbType.Int, 20);
      prams[0].Value = (ClassID==null?0:ClassID);
      prams[1] = new SqlParameter("@Title",  SqlDbType.NVarChar, 100);
      prams[1].Value = (Title==null?"":Title);
      prams[2] = new SqlParameter("@Content",SqlDbType.NVarChar, 8000);
      prams[2].Value = (Content==null?"":Content);
      prams[3] = new SqlParameter("@Type",  SqlDbType.Int, 2);
      prams[3].Value = (Type==null?0:Type);
      prams[4] = new SqlParameter("@ID",  SqlDbType.Int, 2);
      prams[4].Direction=ParameterDirection.Output;
    }
    if (con == null) 
    {
      con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    }

    if(con.State ==System.Data.ConnectionState.Closed)
      con.Open(); SqlCommand cmd = new SqlCommand("SP_AddDoc", con);
     cmd.CommandType = CommandType.StoredProcedure; // 参数传入存储过程
     if (prams != null)
      {
        
         int ii;
         
         for (ii = 0; ii <= (prams.GetLength(0) - 1); ii++)
         {
           cmd.Parameters.Add(prams[ii]);
         }
       
       }  try
      {
        cmd.ExecuteNonQuery();
       }
        catch (SqlException ex)
        {
          //MyScript.JScript.Alert(ex.ToString());
         }
        cmd.Dispose();MyScript.JScript.Alert(prams[4].Value) //返回的值为空,出错!!!!//调用的存储过程:
    //sp_AddDoc-------------------------------
    ALTER   proc SP_AddDoc 
    @ClassID int,
    @Title As varchar(300), 
    @Content As ntext, 
             @Type As Int, 
             @ID  [int] OUTPUT
    ASInsert Into My_document 
    (ClassID,Title,Content,Type)
    values (@ClassID,@Title,@Content,@Type)select @ID=@@identity
    -----------------------------------
      

  7.   

    try
      {
        cmd.ExecuteNonQuery();
       }
        catch (SqlException ex)
        {
          //MyScript.JScript.Alert(ex.ToString());
         }
        cmd.Dispose();这个地方捕获的错误就是开头写的那个
      

  8.   

    俺找到症结所在了,将程序中的类型和宽度改成和存储过程一致就可以了。可是没打sp4补丁之前是没问题的,sp4到底干了些啥