我正在瀏覽YouTube視頻,以瞭解ASP.NET。我已經得到它的大部分工作,有一個主要的警告:我不能從隱藏的領域ID退休的價值。因此,我沒有價值發送到存儲過程來創建或更新。無法獲取ASP.NET隱藏字段的值
註釋掉的是原文。當我有那麼執行 .ExecuteNonQuery,我得到以下錯誤:
"Procedure or function 'ResourceCreateOrUpdate' expects parameter '@ResourceID', which was not supplied.".
當我嘗試顯示hfResourceID,我沒有試圖通過0時,對於創建,或資源ID值,即1但是,這個價值並沒有達到目標。我知道存儲過程的工作原理,因爲我可以在SQL Server Management中執行它。
我試着將hfResourceID移動到一個字符串,然後是一個整數值,但我似乎遇到了創建if/else的問題:一切都被標記爲錯誤。當我將鼠標懸停在線條,我得到以下信息,這幾乎離開我無言以對:
"Embedded statement cannot be a declaration or labeled statement".
我是否能夠得到關於如何清理我的錯誤任何指針嗎?謝謝。
2017年10月13日10:38 @:代碼更新
<asp:HiddenField ID="hfResourceID" runat="server" />
protected void btnSave_Click(object sender, EventArgs e)
{
int intResourceID = 0;
bool boolIDHasValue = true;
try
{
intResourceID = Convert.ToInt32(hfResourceID.Value);
}
catch (Exception ex)
{
lblErrorMessage.Text = ex.Message;
boolIDHasValue = false;
}
if (boolIDHasValue)
{
if (sqlconnODRConnection.State == System.Data.ConnectionState.Closed)
sqlconnODRConnection.Open();
SqlCommand sqlcmdCreateOrUpdate = new SqlCommand("ResourceCreateOrUpdate", sqlconnODRConnection);
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@ResourceID", intResourceID);
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@Status", txtStatus.Text.Trim());
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@FirstName", txtFirstName.Text.Trim());
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@MiddleName", txtMiddleName.Text.Trim());
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@LastName", txtLastName.Text.Trim());
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@NickName", txtNickName.Text.Trim());
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@Gender", txtGender.Text.Trim());
sqlcmdCreateOrUpdate.Parameters.AddWithValue("@USCitizen", txtUSCitizen.Text.Trim());
sqlcmdCreateOrUpdate.ExecuteNonQuery();
sqlconnODRConnection.Close();
string strResourceID = hfResourceID.Value;
Clear();
if (strResourceID == "")
lblSuccessMessage.Text = "Saved Successfully";
else
lblSuccessMessage.Text = "Updated Successfully";
FillGridView();
}
}
是什麼類型的字段?也許嘗試hfResourceID.Text而不是.Value,然後將字符串值解析爲int或任何類型。 – akerra
那麼,你沒有提供一個叫做「@ResourceID」的參數。根據錯誤,存儲過程期望該參數。看起來你試圖在某個時候提供這個參數,但現在它被註釋掉了。註釋中的代碼不會執行。 – David
此外,「嵌入語句...」錯誤引用您的if/else塊。你在每個塊中做的* only *事情是聲明一個變量,沒有別的。編譯器不允許這樣做。沒有目的,變量會立即超出範圍。 – David