2014-01-16 34 views
1

未得到@lastupdate的值。如果卸下SELECT語句,則得到的@lastupdate值在代碼隱藏帶輸出子句的Select語句不起作用

@action int, 
@autoid int = NULL, 
@datecheck date = NULL, 
@lastupdate datetime = '' OUTPUT 

AS 
BEGIN 
SET NOCOUNT ON; 

IF @action = 1 
    BEGIN 
     SET @lastupdate = (SELECT reddate FROM lastupdate) 
     SELECT * FROM view_mychart WHERE [email protected] 
    END 
END 

回答

1

結果設置後返回任何輸出參數。確保在嘗試訪問輸出參數之前已經處理/讀取結果。

+0

數據u可以顯示在代碼的例子在後面VB – wasimjee

+0

con.Open() myreader = cmd.ExecuteReader 代碼如果myreader.HasRows然後 lastupdate.Text = CMD。參數( 「@ LASTUPDATE」)。值 myreader.Read() myreader.Close() lastupdate.Text = cmd.Parameters( 「@ LASTUPDATE」)。值 否則 lastupdate.Text = cmd.Parameters(「@ lastupdate「)。Value.ToString End If – wasimjee

+0

嘗試在獲取參數之前關閉閱讀器。 – NigelK

0

從我可以,你應該使用的東西沿着以下的線看到:

SELECT @lastupdate = reddate FROM lastupdate 

雖然我個人可能限制查詢,因爲這可能需要一段時間取決於數據庫的大小等

+0

它不工作我需要兩個 – wasimjee

0

如果既需要 - 只寫兩個語句

IF @action = 1 
    BEGIN 
     -- are you 1000% sure this only ever returns ONE ROW??? 
     -- otherwise, you might need to change it somehow.... 
     SELECT @lastupdate = reddate FROM lastupdate 

     SELECT * FROM view_mychart WHERE processdate = @datecheck 
    END 
END 

這應該工作得很好!