我正在开发一个具有GridView的系统,该系统具有一个选择选项,可以通过其主键ID选择存储在特定行中的数据。
此代码在另一页上可以正常执行完全相同的功能
protected void lnk_OnClick(object sender, EventArgs e)
{
int objectiveID = Convert.ToInt32((sender as LinkButton).CommandArgument);
if (con.State == ConnectionState.Closed)
con.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("objectiveViewByID", con);
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
sqlDa.SelectCommand.Parameters.AddWithValue("@objectiveID", objectiveID);
DataTable dtbl = new DataTable();
sqlDa.Fill(dtbl);
con.Close();
hfobjectiveID.Value = objectiveID.ToString();
txtAudience.Text = dtbl.Rows[0]["audience"].ToString();
txtCondition.Text = dtbl.Rows[0]["condition"].ToString();
txtBloom.Text = dtbl.Rows[0]["bloom_level"].ToString();
txtVerb.Text = dtbl.Rows[0]["verb"].ToString();
txtProduct.Text = dtbl.Rows[0]["product"].ToString();
btnSave.Text = "Update";
btnDelete.Enabled = true;
}
我希望代码能重新填充用于填充数据库的输入字段。
答案 0 :(得分:0)
理论上,这是格式异常,如果ToInt32方法的输入为某个非数字值,则可能会在此处产生错误。
int objectiveID = Convert.ToInt32((sender as LinkButton).CommandArgument);
如果值(例如dtbl.Rows [0] [“ audience”]为空),则其他可能的区域是以下代码。 但这将是一个不同的例外。您可以在顶部放置一个断点,看看哪条线崩溃了。
hfobjectiveID.Value = objectiveID.ToString();
txtAudience.Text = dtbl.Rows[0]["audience"].ToString();
txtCondition.Text = dtbl.Rows[0]["condition"].ToString();
txtBloom.Text = dtbl.Rows[0]["bloom_level"].ToString();
txtVerb.Text = dtbl.Rows[0]["verb"].ToString();
txtProduct.Text = dtbl.Rows[0]["product"].ToString();