SQL Server에 많은 필드가있는 저장 프로 시저가 있으며 그 중 일부는 매개 변수 목록에서 초기화됩니다. 그래서 내가 asp.net에서 이러한 매개 변수에 대한 값을 전달하거나 그들을 무시해야합니까? 내 의미를 얻으려면 아래 내 코드를 참조하십시오.저장 프로 시저에 값 전달
저장 프로 시저 : 전송 알엇에 대한
ALTER PROCEDURE [dbo].[ADD_SMS_InQueue]
(
@ToMobNo varchar(15),
@Message nvarchar(2000),
@encoding_Type int = 0,
@IsAlertSMS bit = 0,
@priority int = 2,
@SendByUser int = 1,
@MessageType tinyint = 0
)
AS
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO MessageQueue ([QueueDateTime], Client_ID, ToMobileNo,
[Message], LongMessageType_ID, EncodingType_ID, AlertMessage, LocalSMS, Priority_ID, Attempts, TotalAttempts, Status_ID, SendByUser, MessageType)
VALUES (GETDATE(), 1, @ToMobNo, @Message, 3, @encoding_Type, @IsAlertSMS, 1, @priority, 0, 0, 1, @SendByUser, @MessageType)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
C# 코드 :
public class MessageQueueBizz
{
public string ToMobileNo { get; set; }
public string Message { get; set; }
public MessageQueueBizz(string ToMobileNo, string Message)
{
this.ToMobileNo = ToMobileNo;
this.Message = Message;
}
}
public class ManageQueueBizz
{
public int Insert(MessageQueueBizz MessageQueueBizz)
{
SqlCommand cmd = new SqlCommand("ADD_SMS_InQueue", DataBaseConnectionSMSDB.OpenConnection());
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter pToMobileNo = new SqlParameter("@ToMobNo", MessageQueueBizz.ToMobileNo);
cmd.Parameters.Add(pToMobileNo);
SqlParameter pMessage = new SqlParameter("@Message", MessageQueueBizz.Message);
cmd.Parameters.Add(pMessage);
int result = Convert.ToInt32(cmd.ExecuteNonQuery());
DataBaseConnectionSMSDB.CloseConnection();
return result;
}
가 정확히 무엇 저장된 프로 시저에서 초기화 된 매개 변수를 포함 할 필요가 없습니다 너의 질문? 코드는 괜찮아 보입니다 ... –
왜 테스트하지 않으시겠습니까 ?? 이 질문을하는 데 걸리는 시간에 쉽게 이것을 테스트 할 수있었습니다. –