簡體   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