1

我有一个带有名册/信息的 SQL Server。我想用仰卧起坐、俯卧撑和 Id 更新表格。我知道如何将信息插入到表中,但在更新部分遇到问题。

这是我的代码:

SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
SqlCommand cmd = new SqlCommand("UPDATE test SET SitUps = @SitUps, pushUps = @pushUps WHERE (Id = @Id)", conns);
cmd.CommandType = CommandType.Text;

Label sitL = ((Label)FormView2.FindControl("SitUpsLabel"));
Label pushL = ((Label)FormView2.FindControl("pushUpsLabel"));
Label IdL = ((Label)FormView2.FindControl("IdLabel"));

cmd.Parameters.AddWithValue("@SitUps", sitL.Text);
cmd.Parameters.AddWithValue("@pushUps", pushL.Text);
cmd.Parameters.AddWithValue("@Id", IdL.Text);

我收到此错误

System.NullReferenceException:对象引用未设置为对象的实例。

我很确定这是我对待Id价值的方式。提前致谢!!

4

3 回答 3

1
  1. 确保您在此处声明的 3 个 id,“SitUpsLabel”、“pushUpsLabel”和“IdLabel”与您在表单视图中的相同。

  2. 我注意到“IdL”颜色很奇怪,请尝试使用其他变量名。您可能会将“IdL”用于其他目的。

于 2012-08-30T17:48:02.050 回答
1

最有可能的是 FormView2.FindControl 返回 null,请检查控件的实际 ID。你怎么确定这段代码会引发异常?好像你没有调试代码(否则你会知道确切的线路和原因),所以我建议这样做=)

于 2012-08-30T17:42:17.023 回答
0

在将值分配给 cmd.Parameters 之前,首先检查它们是否为空。例子:

if( sitL != null )
{
    cmd.Parameters.AddWithValue("@SitUps", sitL.Text);
}
// In this way add the all parameters.

发生错误System.NullReferenceException是因为未找到您的控件之一并且它包含 null。

于 2012-08-30T17:34:10.507 回答