我有一個ASP.NET C#網頁,它在更新模式下具有DetailsView。用戶鍵入內容並按下按鈕以更新數據庫上的該記錄。基於存儲過程返回值的錯誤
我想添加一個運行快速存儲過程並獲取返回值的JavaScript。如果返回值小於1,那麼我希望我的DetailsView更新繼續。如果該值大於1,那麼我想停止更新並顯示錯誤消息:'錯誤:大於1'。
一如既往,我感謝任何幫助。
本
我有一個ASP.NET C#網頁,它在更新模式下具有DetailsView。用戶鍵入內容並按下按鈕以更新數據庫上的該記錄。基於存儲過程返回值的錯誤
我想添加一個運行快速存儲過程並獲取返回值的JavaScript。如果返回值小於1,那麼我希望我的DetailsView更新繼續。如果該值大於1,那麼我想停止更新並顯示錯誤消息:'錯誤:大於1'。
一如既往,我感謝任何幫助。
本
我最終以迂迴的方式解決了這個問題。這不是我理想的解決方案,但它的工作原理是一樣的。
我最終把這段代碼放到了我的Page_Load中。它抓取QueryString中的用戶代碼,然後使用該用戶代碼運行SQL查詢以獲取單個值。如果該值大於1,則頁面將重定向到錯誤頁面。
再次,不理想,但它的目的。
protected void Page_Load(object sender, EventArgs e)
{
//Runs query to determine if returnValue is greater then 1 then redirects if true
SqlConnection sqlConnection1 = new SqlConnection("ConnectionString");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT COUNT(UID) FROM Table WHERE (USER = @USER)";
cmd.CommandType = CommandType.Text;
SqlParameter UserID = new SqlParameter("@USER", Request.QueryString["usr"]);
UserID.Direction = ParameterDirection.Input;
cmd.Parameters.Add(UserID);
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
int returnValue;
returnValue = Convert.ToInt32(cmd.ExecuteScalar());
sqlConnection1.Close();
if (returnValue > 0)
{
Response.Redirect("morethanone?usr=" + Request.QueryString["usr"]);
}
}
您可以調用Web服務或頁面方法來執行數據庫查詢,並將結果與Ajax
的幫助下返回到客戶端。
在這裏你會發現同樣的,只要你想在這裏實施了答案:Run Stored Procedure with ajax
您可以使用Ajax and Jquery
來實現這一目標。基本上你會在代碼中調用一個方法的後面,你將運行存儲過程,並返回一個成功或錯誤消息
的jQuery是:
$("input[id$='ButtonName']").click(function (e) {
$.ajax({
type: "POST",
url: "PageName.aspx/FunctionName",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d == 'Success') {
//do something
}
else if (msg.d == 'ERROR') {
//do something
}
}
});
e.preventDefault();
});
後面方法的代碼是:
[System.Web.Services.WebMethod]
public static string FunctionName()
{
//run store proc and return success or error
}