查詢我有一個運行在SQL Server存儲過程,檢查時間一排之間的一個表,差異getdate()
不同的結果運行在SQL Server和C#
我把這個存儲過程中的應用C#中,並使用@returnValue
做一些事情
這是方法
public static bool Check(string CheckStored)
{
using (DbCommand command = DatabaseDA.DefaultDb.GetStoredProcCommand(CheckStored))
{
DatabaseDA.DefaultDb.AddParameter(command, "ReturnValue", DbType.Boolean, ParameterDirection.ReturnValue, "", DataRowVersion.Current, 0);
DatabaseDA.DefaultDb.ExecuteNonQuery(command);
return Convert.ToBoolean(command.Parameters["@ReturnValue"].Value);
}
}
,這是呼叫
bool notifNeeded = NotificationsDA.Check("CheckLastEnvioListadoComprobanteEjercicio");
然後在SQL Server中,我有:
ALTER Procedure [dbo].[CheckLastEnvioListadoComprobanteEjercicio]
as
Begin
declare @UltimoEnvio datetime
declare @ReturnValue bit
select @UltimoEnvio = LastDate from EnvioListadoEjercicioComprobantes
Select @returnValue = CASE
WHEN DATEDIFF(hour, @UltimoEnvio, getdate()) >= 1 THEN 1
ELSE 0
END
from rep_inboxRequest
if (@ReturnValue = 1)
update EnvioListadoEjercicioComprobantes set LastDate = getdate()
return @ReturnValue
END
在EnvioListadoEjercicioComprobantes
我有一個動作的lastDate(EJ發送郵件)一行。
現在,我只有一行,與2012-06-18 06:40:02.210
值。我將此日期與實際日期進行比較,如果差異超過一小時,則返回一點。眼下
,在阿根廷,其對2012-06-18 11:26
如果我在SQL Server中執行getdate()
,我得到2012-06-18 11:30:44.027
如果我在SQL Server和打印@ReturnValue
運行我的整個存儲過程中,我得到1該行更新-
但是,當我打電話給我從C#存儲,我總是得到0,當然,行沒有更新。
我在做什麼錯?
你已經完成了哪些調試步驟? –
一步一步運行。在ExecuteNonQuery之後,我檢查「Value」,它是0(當然,轉換得到'false')。如果我運行存儲在SQL服務器中,我得到1值。檢查app.config,這是正確的數據庫。 –
你可以顯示你的連接字符串嗎? (我有一個偷偷的懷疑,「用戶實例」/「AttachDbFilename」在玩。) –