2012-08-14 120 views
0

我有一個DropDownList,它綁定到數據庫。在DropDownList列表中的值可以是這樣的:在DropDownList選擇中有重複的值導致不匹配選擇

Bedroom1
Bedroom2
Kitchen1
Kitchen2

當這些項目在DropDownList列表中,已經選擇 「Bedroom2」,選擇「Bedroom1 「本身,但是選擇了」Kitchen2「,選擇」Kitchen1「。

這個DropDownList進一步綁定到另一個DropDownList。我爲DropDownList設置了AutoPostBack。我已經綁定了來自代碼的數據源。

什麼可能會出錯?

數據綁定代碼:

SqlDataAdapter myda = new SqlDataAdapter("Select * FROM " + Label3.Text, con); 
DataSet ds = new DataSet(); 
myda.Fill(ds, "Table"); 
LOC_LIST2.DataSource = ds.Tables[0]; 
LOC_LIST2.DataTextField = ds.Tables[0].Columns["Location_Instance"].ColumnName.ToString(); 
LOC_LIST2.DataValueField=ds.Tables[0].Columns["Location_Type"].ColumnName.ToStri??ng(); 
LOC_LIST2.DataBind(); 
LOC_LIST2.Items.Insert(0, new ListItem("---Choose One Location---", "-1")); 

因此,在上面的代碼Location_Instance是被添加並存儲在數據庫和同樣是在上述DropDownList檢索位置(LOCATION_TYPE)的數目。

這是一個非常嚴重的問題,有人可以幫助我在這個儘快?

+6

郵政代碼和實際的項目,因爲它們是如何在頁面上呈現。 – Icarus 2012-08-14 16:13:07

+0

將您的帖子內的帖子發佈,而不是作爲圖片,但作爲代碼支架 – jbkkd 2012-08-14 16:21:48

+0

我已經添加到您的帖子的代碼。爲了將來的參考,請使用您的問題下方的「編輯」鏈接添加該類型的信息(而不是評論,因爲它們不會非常清楚地顯示代碼)。另請注意,我修正了一些其他拼寫和語法問題,並添加了一些格式。 – jadarnel27 2012-08-14 16:39:03

回答

0

如果你回發後讓你的DropDownList重複的項目,嘗試設置下拉的數據源之前,您綁定代碼添加此:

LOC_LIST2.Items.Clear(); 

這將清除DropDownList中的所有項目,那麼你的當前綁定代碼將運行並重新添加所需的項目。 因此,新的代碼將改爲:

SqlDataAdapter myda = new SqlDataAdapter("Select * FROM " + Label3.Text, con); 
DataSet ds = new DataSet(); 
myda.Fill(ds, "Table"); 
LOC_LIST2.Items.Clear(); 
LOC_LIST2.DataSource = ds.Tables[0]; 
LOC_LIST2.DataTextField =  ds.Tables[0].Columns["Location_Instance"].ColumnName.ToString(); 
LOC_LIST2.DataValueField=ds.Tables[0].Columns["Location_Type"].ColumnName.ToStri??ng(); 
LOC_LIST2.DataBind(); 
LOC_LIST2.Items.Insert(0, new ListItem("---Choose One Location---", "-1")); 

此外,在一個側面說明,你不妨看看使用參數化的SQL語句,以幫助從之類SQL注入保護。從MSDN例如:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.selectcommand.aspx

+0

對不起我的問題是我需要在'DropDownList'> Bedroom1> Bedroom2中獲取這些重複值。但是,當我選擇它時,應該能夠選擇Bedroom2。 – Archana 2012-08-15 17:44:56