【发布时间】:2014-05-20 09:57:45
【问题描述】:
我在 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;
}
【问题讨论】:
-
您的问题到底是什么?代码看起来不错...
-
为什么不直接测试一下??在您提出这个问题的时间里,您本可以轻松地对此进行测试。
标签: c# sql asp.net sql-server ado.net