1

名簿/情報を含むSQLServerがあります。シットアップ、腕立て伏せ、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

最も可能性が高いのは、FormView2.FindControlがnullを返すことです。コントロールの実際のIDを確認してください。このコードが例外をスローすることをどのように確信していますか?あなたはコードをデバッグしていなかったようです(そうでなければ、正確な行と理由を知っているでしょう)、それで私はそれをすることをお勧めします=)

于 2012-08-30T17:42:17.023 に答える
1
  1. そこに記述した3つのID、「SitUpsLabel」、「pushUpsLabel」、および「IdLabel」がフォームビューにあるものと同じであることを確認してください。

  2. 「IdL」の色がおかしいことに気づきました。代わりに他の変数名を使用してみてください。他の目的で「IdL」を使用している可能性があります。

于 2012-08-30T17:48:02.050 に答える
0

cmd.Parametersに値を割り当てる前に、まず値がnullかどうかを確認してください。例:

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

System.NullReferenceExceptionコントロールの1つが見つからず、nullが含まれているため、エラーが発生します。

于 2012-08-30T17:34:10.507 に答える