2012-09-14 41 views
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(); 
      } 

} 

錯誤:未將對象引用設置爲對象的實例。

+0

你確定所有這些領域都有價值,也許你有一個空潛伏在其中的一個! ! – V4Vendetta

+0

在哪條線上出現錯誤 – sharad

+0

cmd.Parameters.Add(「@ dummy」,SqlDbType.Int).Value = DropDownList5.SelectedItem.Text;這條線 –

回答

2

如果您收到這條線

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

那麼很可能什麼也沒有在下拉列表中選擇的錯誤,這就是爲什麼你所得到的錯誤。

您可以在行前添加檢查以查看SelectedItem是否爲空。

if(DropDownList5.SelectedItem != null) 
    cmd.Parameters.Add("@dummy", SqlDbType.Int).Value = DropDownList5.SelectedItem.Text; 
+0

爲什麼我得到錯誤必須聲明標量var @dummy? –

+0

這是因爲您現在沒有在下拉列表中選擇任何項目,並且由於檢查參數@dummy未被添加到參數列表中。你需要確保你從下拉列表中選擇了一些東西。這個想法是告訴你有關錯誤,你需要解決的原始問題是**沒有任何東西在下拉列表中被選中** – Habib

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(); 
    }