SQL Server Management Studio에서 실행하면 저장 프로 시저가 제대로 실행됩니다. C#을 (윈폼) 나는 다음과 같은 코드가에서값이 지정되지 않은 저장 프로 시저의 값이 전달됩니다.
:
InsertWarning.Parameters.AddWithValue("@idUser", userIDAuth);
InsertWarning.Parameters.AddWithValue("@idPass", idPass);
if (Privileged)
MessageWarning += " gave you privileged access to note " + Description;
else
MessageWarning += " gave you access to note " + Description;
InsertWarning.Parameters.AddWithValue("@Message", MessageWarning);
InsertWarning.ExecuteNonQuery();
InsertWarning.Parameters.Clear();
ExecuteNonQuery()
이는 @idUser
값이없는 말을 중지 실행됩니다.
저장 프로 시저 : SQL에서
SqlCommand InsertWarning = new SqlCommand("_spInsertWarnings", TeamPWSecureBD);
InsertAuths.CommandType = CommandType.StoredProcedure;
저장 프로 시저 :
[dbo].[_spInsertWarnings]
@idUser int, @idPass int, @Message nvarchar(MAX)
AS
INSERT INTO Warnings
VALUES(@idUser, @idPass, @Message)
원본 게시물의 형식에 따라, 이것이 논리 분기의 일부인 것처럼 보입니다. 이 proc가 호출되는 다른 곳이 있습니까? 또한 저장 프로 시저에서'@idUser' 데이터 타입은 무엇입니까? 당신은 또한 저장된 proc 헤더를 게시 할 수 있습니까? –
저장 프로 시저를 실행할 때 SQL 프로필러에 표시되는 내용은 무엇입니까? –
// 추가 위에 Clear 메서드를 넣을 수 있습니까? 그리고 다시 시도하십시오? InsertWarning.Parameters.Clear(); InsertWarning.Parameters.AddWithValue ("@ idUser", userIDAuth); InsertWarning.Parameters.AddWithValue ("@ idPass", idPass); 경우 (권한) MessageWarning + = + 설명 "당신이주의해야 할 접근 권한을 주었다"; else MessageWarning + = "메모에 액세스 권한을 부여했습니다."+ 설명; InsertWarning.Parameters.AddWithValue ("@ 메시지", MessageWarning); InsertWarning.ExecuteNonQuery(); – sarathkumar