[英]How to pass int parameter to DATASET implemented interface method in C#
下面是關於我實現的代碼的快速閱讀
在 ILogic.cs 文件中聲明的接口。
DataSet updateStatus();
CLogic.cs 文件中的返回接口。
public DataSet updateStatus()
{
return this.Repository.updateStatus();
}
Repository.cs 文件中的接口方法實現,實現該方法的正確方法是什么。
public DataSet updateStatus()
{
try
{
dataSet = new DataSet();
using (SqlCommand cmd = new SqlCommand(StoredProcedures.JobStausUpdate, conETLITG))
{
conITG.Open();
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
adapt.SelectCommand.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(jobid);
adapt.Fill(dataSet);
conITG.Close();
}
return dataSet;
}
catch (Exception es)
{
throw es;
}
}
在 Program.cs 文件中調用如下方法,那么我如何在updateStatus
中傳遞@Execution_Job_ID
intjobId=86746;
commonLogic.updateStatus(jobId);
SQL 存儲過程
CREATE PROCEDURE JobStausUpdate
( @Execution_Job_ID INT
)
AS
BEGIN
SELECT TOP 3
ji.jobname,
jel.*
INTO #tempjobstatus
FROM joblog jel
INNER JOIN jobinfo ji
ON jel.jobid=ji.jobid
WHERE jel.jobid IN (67,89,44)
AND jel.joblogid <= @Execution_Job_ID
ORDER BY 2 DESC
DECLARE @ARefresh VARCHAR(30),
@BRefresh VARCHAR(30),
@statusId INT,
@statusReturn INT
SET @ARefresh =
(
SELECT jobstatus
FROM #tempjobstatus
WHERE jobname ='aRefresh')
IF (@ARefresh = 'Failed')
BEGIN
SET @BRefresh =
(
SELECT jobstatus
FROM #tempjobstatus
WHERE jobname ='bRefresh')
IF (@BRefresh = 'In Progress')
BEGIN
SET @statusId =
(
SELECT joblogid
FROM #tempjobstatus
WHERE jobname ='bRefresh')
UPDATE joblog
SET jobstatus = 'Failed'
WHERE joblogid = @statusId
SET @statusReturn=1
END
ELSE SET @statusReturn =0
END
ELSE IF (@ARefresh = 'Completed')
BEGIN
SET @BRefresh =
(
SELECT jobstatus
FROM #tempjobstatus
WHERE jobname ='bRefresh')
IF (@BRefresh = 'In Progress')
BEGIN
SET @statusId =
(
SELECT joblogid
FROM #tempjobstatus
WHERE jobname ='bRefresh')
UPDATE joblog
SET jobstatus = 'Completed'
WHERE joblogid = @statusId
SET @statusReturn=1
END
ELSE SET @statusReturn =0
END
ELSE
BEGIN
SET @statusReturn=0
END
SELECT @statusReturn
SELECT * FROM #tempjobstatus
END
也許我誤解了這個問題,但您只需要更新您的界面以包含您要傳遞的 int,然后更改您的 cmc.Parameters.Add。
DataSet updateStatus(int jobid);
cmd.Parameters.Add(new SqlParameter("@JobID",jobid));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.