繁体   English   中英

调用第二种方法不起作用-asp.net和C#

[英]calling a 2nd method is not working - asp.net and c#

public static int MassEmpNumUpdate(string empToUpdateFrom, string empToUpdateTo)
{
    string sql;
    int retval;
    using (cn = new SqlConnection(ConnectionString()))
    {
        cn.Open();
        sql = "uspUpdateDet"; // THIS IS THE 1ST SP
        using (cmd = new SqlCommand(sql, cn))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@EmpToUpdateFrom", empToUpdateFrom);
            cmd.Parameters.AddWithValue("@EmpToUpdateTo", empToUpdateTo);
            cmd.Parameters.Add("@ReturnValue", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
            cmd.ExecuteNonQuery();

            retval = (int)cmd.Parameters["@ReturnValue"].Value;

        }

        if (retval == 0)
        {
            sql = "uspUpdatePrev"; // THIS IS THE 2ND SP - not working :(
            using (cmd = new SqlCommand(sql, cn))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@EmpToUpdateFrom", empToUpdateFrom);
                cmd.Parameters.AddWithValue("@EmpToUpdateTo", empToUpdateTo);
                cmd.Parameters.Add("@returnvalue", SqlDbType.Int).Direction =   ParameterDirection.ReturnValue;
                return cmd.ExecuteNonQuery();
            }
        }

        return retval;
    }

}

}

我有2个存储过程(将更新2个表)uspUpdateDet和uspUpdatePrev。 我的问题是为什么我的第二个(uspUpdatePrev)语句不起作用。 顺便说一句,sp从sql server 08开始正常工作。

SP1:

设置ANSI_NULLS ON设置QUOTED_IDENTIFIER ON

更改过程[dbo]。[uspUpdateDet]

 @EmpToUpdateFrom varchar(7)
, @EmpToUpdateTo varchar(7)

设为NOCOUNT ON;

宣告@affectedRows int SET @affectedRows = 0;

开始更新tbl1 SET DET1 = @EmpToUpdateTo WHERE DET1 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET DET2 = @EmpToUpdateTo WHERE DET2 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L1 = @EmpToUpdateTo WHERE L2 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L2 = @EmpToUpdateTo在哪里L2 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L3 = @EmpToUpdateTo WHERE L3 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L4 = @EmpToUpdateTo WHERE L4 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L5 = @EmpToUpdateTo WHERE L5 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L6 = @EmpToUpdateTo WHERE L6 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L7 = @EmpToUpdateTo WHERE L7 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

开始更新tbl1 SET L8 = @EmpToUpdateTo WHERE L8 = @EmpToUpdateFrom SET @affectedRows = @affectedRows + @@ ROWCOUNT END

返回@affectedRows

我不知道您所说的“不工作”是什么意思,但很可能retval不是0

您确实应该调试该应用程序,并查看从第一次调用中获得的收益。

首先猜测是您在第一块中的using语句正在关闭您的连接。 你遇到了什么错误?

编辑:在看了这个问题之后 ,似乎这没有发生,所以最好的猜测是您根本没有碰到障碍物。 你确定这是真的吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM