2014-10-22 38 views
0

我已經搜索了大部分的一天,我相信我可能只是無法向自己的搜索引擎解釋。請原諒我。 我有一個下拉列表,我使用下面的代碼來獲取列名。現在使用列名稱的變量來選擇查詢返回的列。 (asp.net c#)

MySQLDataSource.ConnectionString = matt.GetConnectionString(); 
MySQLDataSource.SelectCommand = "SELECT name FROM sys.syscolumns WHERE (id = 
     (SELECT id FROM sys.sysobjects WHERE (name = 'tbl_EquipmentStock')))"; 
DropDownList1.DataValueField = "name"; 
DropDownList1.DataTextField = "name"; 

,我工作的目的是使用所選擇的項目從這個向下創建下一個下降的SqlDataSource的。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    funtions matt = new funtions(); // funtions is the class that contains my connection string. 
    string frank = DropDownList1.SelectedValue; 
    a_c_instruction.Text = " Data filtered on: "; 
    selectedItem.Text = frank; 
    string sql = "SELECT " + frank + " FROM tbl_EquipmentStock"; 
    AnotherSqlDataSource.ConnectionString = matt.GetConnectionString(); 
    AnotherSqlDataSource.SelectCommand = sql; 
    DropDownList2.DataValueField = frank; 
    DropDownList2.DataTextField = frank; 
    DropDownList2.Visible = true; 
} 

但是,當我試圖讓這個工作,DropDownList2不填充。我可能會錯過什麼?謝謝你看我的問題。

+0

檢查'Page_Load'上的'IsPostBack'?另外,在使用SQL Server時,您是否稱您的數據源爲「MySQLDataSource」,這不會讓您發瘋嗎? – ethorn10 2014-10-22 02:17:58

+0

我認爲這很諷刺。我在這個週末開始的時候寫了一些非常有趣的「企業」和「維爾」的名字,但是在我週末的時候,我只需要一點就可以將它分離出來。 – 2014-10-22 18:28:50

+0

我的意思是'MySQL'與SQL Server'是完全不同的RDBMS,你似乎在使用'SQL Server',但是調用你的變量'MySQL' ......我的大腦不會讓我失去這種感覺。 – ethorn10 2014-10-22 20:07:28

回答

0

我測試了你的代碼,它在我的機器上工作。我猜測,爲了在選擇該列後立即發生這種情況,您需要確保DropDownList1上的AutoPostBack選項設置爲true

+0

你知道我以爲是但我會再次檢查。 – 2014-10-22 15:14:54

+0

我相信這是我必須將其設置爲AutoPostBack我相信會從第一個下拉列表中返回selectedItemText或Value,以便填充第二個下拉列表選擇查詢的變量。但是我只是在下拉菜單中看不到任何東西。哦,嘿,我更多地思考,'tbl_EquipmentStock'是空的,所以我沒有結果。我站在樹林附近看森林。 – 2014-10-22 15:21:23

+0

好吧,我回到了程序中,並在表格中添加了一些數據,而我在第二個下拉列表中仍然沒有任何結果。所以第一個陳述是有效的,第二個陳述是我失去了一些東西。 – 2014-10-22 18:29:53