代码如下~~~
 if (Text == "3gp" && Text == "mp4")
                {
                    path = "/User/" + fileurl6 + "/" + fileurl3;                 }
                else if (Text == "jpg" && Text == "gif")
                {
                    path = "/User/" + fileurl6 + "/" + fileurl4;                  }
                else if (Text == "mp3")
                {
                    path = "/User/" + fileurl6 + "/" + fileurl5;  
                }                SqlParameter prmFileUrl = new SqlParameter("@FileUrl", SqlDbType.NVarChar, 256);
                prmFileUrl.Direction = ParameterDirection.Input;
                prmFileUrl.Value = path;

cmdCreateNewFile.Parameters.Add(prmFileName);
cmdCreateNewFile.Parameters.Add(prmNewFileName);
cmdCreateNewFile.Parameters.Add(prmExtensionName);
cmdCreateNewFile.Parameters.Add(prmAddUserName);
cmdCreateNewFile.Parameters.Add(prmResSize);
cmdCreateNewFile.Parameters.Add(prmFileUrl);
cmdCreateNewFile.Parameters.Add(prmRetval);
cmdCreateNewFile.ExecuteNonQuery();path我定义的是一个全局变量!为什么反给我错误。被准备语句 '(@Title nvarchar(256),@NewFileName nvarchar(256),@ExtensionName ' 需要参数 @FileUrl,但未提供该参数。

解决方案 »

  1.   

    存储过程中没有传入@FileUrl参数吧.
      

  2.   

    可能你的path语句准备的有问题,其中可能缺少@FileUrl参数声明。
      

  3.   

    不是path,是cmdCreateNewFile的SQL语句可能有问题。
      

  4.   

    你的赋值语句判断有问题
    if (Text == "3gp" && Text == "mp4")
    if (Text == "jpg" && Text == "gif")
    ……
    这些都永远返回 false 
    而执行完 
    else if (Text == "mp3")
     {
       path = "/User/" + fileurl6 + "/" + fileurl5;  
     }
    之后,如果你的Text != "mp3",那么path还是没有被赋值。所以,出错那是你的if判断出的问题
      

  5.   

    应该是 if (Text == "3gp" || Text == "mp4") 才对。path还是没有被赋值,值等于null,传递给SqlParameter prmFileUrl 的是null,而参数@FileUrl 你定义的是 not null 的输入参数, 所以最后执行sql抛出异常