0

Id を表示するドロップダウン メニューがあります。データベースの RSVP テーブルから取得し、日付、曜日、時間、合計を表示する 4 つのラベル。ユーザーが 4(Id) を選択すると、ID 4 に属するすべてのデータがラベルに表示されるはずですが、コードが機能しません。これが私のコードです。あなたが私を助けてくれることを願っています。どうもありがとう。

 protected void Page_Load(object sender, EventArgs e)
{
     SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
     SqlCommand cmd = new SqlCommand("SELECT Date,Day,Time,Total FROM RSVP WHERE Id = @dummy",conn);

      cmd.Parameters.Add("@dummy", SqlDbType.Int).Value = DropDownList5.SelectedItem.Text;

            var dr = cmd.ExecuteReader();
            if (dr.HasRows == false)
            {
                throw new Exception();   
            }
            if (dr.Read())
            {
                Label1.Text = dr[0].ToString();
                Label2.Text = dr[1].ToString();
                Label3.Text = dr[2].ToString();
                Label4.Text = dr[3].ToString();
             }

 } 

エラー: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

4

2 に答える 2

2

この行でエラーが発生している場合

cmd.Parameters.Add("@dummy", SqlDbType.Int).Value = DropDownList5.SelectedItem.Text;

おそらくドロップダウンリストで何も選択されていないため、エラーが発生しています。

行の前にチェックを追加して、SelectedItem が null かどうかを確認できます。

if(DropDownList5.SelectedItem != null)
    cmd.Parameters.Add("@dummy", SqlDbType.Int).Value = DropDownList5.SelectedItem.Text;
于 2012-09-14T06:22:26.793 に答える
0
    protected void Page_Load(object sender, EventArgs e)
    {
         SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
         SqlCommand cmd = new SqlCommand("SELECT Date, Day, Time, Total FROM RSVP WHERE Id = @dummy", conn);
         cmd.Parameters.AddWithValue("@dummy", DropDownList5.SelectedItem.Text);

         conn.open();
         var dr = cmd.ExecuteReader();
         if (dr.HasRows == false)
           throw new Exception("No data found!");   
         if (dr.Read())
         {
            Label1.Text = dr[0].ToString();
            Label2.Text = dr[1].ToString();
            Label3.Text = dr[2].ToString();
            Label4.Text = dr[3].ToString();
         }
         conn.close();
     }
于 2012-09-14T06:39:55.540 に答える