javascript
  • sql
  • forms
  • razor
  • webmatrix-3
  • 2016-01-20 216 views 0 likes 
    0

    我在Webmatrix(cshtml)中創建了一個使用循環顯示來自SQL CE表的數據的站點。我有一個按鈕,單擊時會運行查詢以更新該記錄的「讀取」狀態。 我無法將記錄ID傳遞給查詢。它可以工作,如果我設置一個靜態ID,但是當我動態ID它看起來像它正在工作(和警報顯示ID傳遞給一個變量),但記錄不會更新。Webmatrix:將變量傳遞給SQL查詢

    我的SQL是:

    db.Execute("UPDATE MyTable SET Status='F' WHERE [email protected]", myVar); 
    

    而我的HTML是(@details是循環創建的記錄集。):

    <form method="post"> 
        <button type="submit" class="btn btn-xs btn-link pull-right" name="optFlag" onclick="javascript:setStatus(@details.MyID)" ><span class="fa fa-flag"></span></button> 
        </form> 
    

    我使用的JS代碼傳遞ID作爲onclick是:

    <script> 
        function setStatus(myVar) { 
        } 
        </script> 
    

    請有人可以告訴我,如果我在正確的軌道上,如果是的話我做錯了什麼。如果我完全偏離軌道,那麼實現這一目標的最佳方式是什麼?

    非常感謝 (PS - 請讓我知道通過評論/消息,如果這篇文章不符合正確的標準,以便我可以修正沒有負分數)。

    +0

    你如何將myVar的值從你的setStatus方法傳遞給你的服務器?誰在調用代碼'db.Execute('? – Shyju

    +0

    感謝您的回覆。 該按鈕包含在

    之內,並且它在提交時通過檢查條件執行相關查詢。 if(Request.Form [「optFlag」 ]; = null){ db.Execute(「UPDATE MyTable SET Status ='F'WHERE [email protected]」,myVar);} – LB79

    回答

    0

    您需要重新考慮您的方法。加載頁面時,腳本語言(剃鬚刀C#)將在JavaScript執行之前執行FIRST。因此,以這種方式使javascript執行數據庫調用是不可能的。

    您可以改爲使用JavaScript加載新頁面,將變量發送到查詢字符串中的新頁面或通過表單,然後使用該值通過剃鬚刀C#代碼執行數據庫調用。

    相關問題