c# - 如何将存储在会话中的值转换为整数
问题描述
我正在尝试使用存储在会话中的值将数据保存到我的数据库中,但是,该值必须是数据库中所述的 int 类型。我该怎么做呢?插入代码如下。
protected void btnSave_outcome_Click(object sender, EventArgs e)
{
if (con.State == ConnectionState.Closed)
con.Open();
SqlCommand sqlCmd = new SqlCommand("OutcomeCreateOrUpdate", con);
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@outcomeID", (hfoutcomeID.Value == "" ? 0 : Convert.ToInt32(hfoutcomeID.Value)));
sqlCmd.Parameters.AddWithValue("@learning_activity", (ddlActivity.SelectedValue.Trim()));
sqlCmd.Parameters.AddWithValue("@objectiveID", int.Parse(Session["objectiveID"].ToString()));
sqlCmd.Parameters.AddWithValue("@audience", (txtAudience1.Text.Trim()));
sqlCmd.Parameters.AddWithValue("@condition", (txtCondition1.Text.Trim()));
sqlCmd.Parameters.AddWithValue("@bloom_level", (ddlCategory1.SelectedValue.Trim()));
sqlCmd.Parameters.AddWithValue("@verb", (ddlVerb1.SelectedValue.Trim()));
sqlCmd.Parameters.AddWithValue("@product", (txtProduct2.Text.Trim()));
sqlCmd.Parameters.AddWithValue("@degree", (txtDegree1.Text.Trim()));
sqlCmd.Parameters.AddWithValue("@statement", ("Given " + txtCondition1.Text.Trim() + ", " + txtAudience1.Text.Trim() + " Will be able to " + ddlVerb1.SelectedItem.Text + " " + txtProduct2.Text.Trim()+ " " + txtDegree1.Text.Trim() +"."));
//sqlCmd.Parameters.AddWithValue("@moduleID", (ddlmodules.SelectedIndex));
sqlCmd.ExecuteNonQuery();
con.Close();
//string objectiveID = hfobjectiveID.Value;
string outcomeID = hfoutcomeID.Value;
Clear();
if (outcomeID == "")
lblSuccessMessage.Text = "Saved Successfully";
else
lblSuccessMessage.Text = "Updated Successfully";
//FillGridView(); for outcomes
new_outcome.Visible = true;
}
我创建了会话如下
protected void redirect_outcomes_Click(object sender, EventArgs e)
{
Session["objectiveID"] = objectiveID.ToString();
//Session["module"] = ddlmodules.SelectedValue;
//Response.Redirect("learningoutcomes.aspx?MultiView1.ActiveIndex=" +2);
final_objective1.Text = "Given " + txtCondition.Text.Trim() + ", " + txtAudience.Text.Trim() + " Will be able to " + txtVerb.Text.Trim() + " " + txtProduct.Text.Trim() + " .";
MultiView1.Visible = false;
GoToAudience1.Visible = false;
MultiView2.ActiveViewIndex = 0;
}
解决方案
您的代码:-
sqlCmd.Parameters.AddWithValue("@objectiveID", int.Parse(Session["objectiveID"].ToString()));
我的建议:-
if(Session["objectiveID"] != null)
{
sqlCmd.Parameters.AddWithValue("@objectiveID", Convert.ToInt32(Session["objectiveID"]));
}
无需使用尝试解析/解析,因为您在会话中仅存储整数值。所以会话有空值或整数值。
推荐阅读
- c++ - 如何使用 Zstd 压缩 C++ 字符串?
- java - command.replaceAll("$player", player.getName()); | 布吉
- javascript - 创建元素后如何执行函数
- java - 如何从 Java 调用具有自定义复杂对象类型作为输入参数的 Oracle PL-SQL 过程
- docker - Docker 版本控制在 Ubuntu 和 CentOS 上是不同的
- ruby-on-rails - 在其他字段上触发验证时复选框未保持选中状态
- json - 仅使用 Angular 7 将 json 数据写入本地 JSON 文件
- google-apps-script - 比较两列的匹配项并拉取每个匹配项的相邻值
- c# - 如何在没有 API 的情况下获取 Instagram 页面的关注者数量
- javascript - 使用 [FromForm] 属性时,集合始终为空