2012-08-06 61 views
-4

我有一個窗體,其中有一個ComboBox控件,其中有兩個值。根據所選的下拉值將值插入表中

一旦用戶選擇列表中的一個項目,我需要顯示一個對應於所選選項的數據表。

if (DropDownList1.SelectedValue == 1) 
{ 
    // open a SqlCommand 
    // read values 
    // fill table 
} 
else if (DropDownList1.SelectedValue == 2)  
{ 
    // etc 

的問題是,我只是想填補表的用戶進行選擇之後。但是當窗體被加載時,組合框會自動選擇第一個選項,我的代碼將運行,填充表格。

如何防止這種情況發生?

+3

你已經問過的想法,但你有什麼問題?你已經嘗試了什麼? – zeencat 2012-08-06 08:06:39

+0

刪除問題可能導致自動禁止問題。改進現有技術總是比較好,而不是刪除它們。另外,我希望我的編輯代表您的實際問題。 – Will 2012-08-16 13:45:32

回答

1

到目前爲止您嘗試了什麼?

使表名來自DropDown沒有問題,它更多的是爲您的應用程序理解和設計數據訪問層。在WebForm中是否有保存按鈕,並且是在代碼背後動態編寫SQL代碼還是使用存儲過程?

起點連接到SQL Server和執行命令的一般類似於下面的(如果你不使用像實體框架ORM):如果您需要了解如何使用EF更多的想法

using (varconn = new SqlConnection(connectionString)) 
using (var cmd = conn.CreateCommand(...))) 
{ 
    conn.Open(); 

    cmd.ExecuteNonQuery(); 
} 

(或簡單的DAL技術)與ASP.NET(MVC或Web窗體),看到我的答案在這裏:https://stackoverflow.com/a/7474357/559144

+0

嗨..感謝你的迴應..呃..我到目前爲止還沒有嘗試過任何東西,只是因爲我無能爲力。我知道ADO.NET和我的數據庫的連接..但我有一個表單,如果用戶從列表中選擇一個項目,假設他選擇了一個名爲「Confirmend Order」的項目,那麼表單中的所有值都必須插入'dbo.Confirmend_order'。所以這是當我陷入困境.. – Girish 2012-08-06 08:27:52

+1

是的,所以你將不得不在一些DataAccessLayer類庫中創建一些方法,你可以從UI控件中傳遞所有這些值作爲參數,然後你將使用帶參數的存儲過程或內聯/ dynamyc SQL創建,並在命令對象上調用ExecuteNonQuery,就像上面的代碼片段一樣,這有意義嗎? – 2012-08-06 08:30:09

+0

謝謝,但我不知道爲什麼我downvoted 2次..不管怎樣,謝謝, – Girish 2012-08-06 08:40:03

0
 DataSet ds = new DataSet(); 
     ds.Tables.Add(new DataTable("DataTableNo1")); 
     ds.Tables.Add(new DataTable("DataTableNo2")); 

     string dtname = comboBox1.Text; 
     ds.Tables[dtname].Rows.Add(new DataRow());