2013-02-08 168 views
1

嗨我有一個下拉列表,我想更新一個項目,當我在下拉列表中選擇它,我寫了這個代碼,但它只更新第一項:如何更新下拉列表中選擇的項目asp.net c#

 DBMethod db = new DBMethod(); 
     DataTable dt = new DataTable(); 
     string sqlcmd = "select * from dbo.Web_Personnel "; 
     dt = db.ReturnTableWithData(sqlcmd); 

     dt.Rows[0]["Job"] = txtjobE.Text; 
     dt.Rows[0]["ChildNo"] = txtchildnoe.Text; 
     dt.Rows[0]["Salary"] = txtsalary.Text; 
     db.UpdateDatatable(dt, "dbo.Web_Personnel"); 
+0

這是很難看到下拉列表中選擇你的代碼,但此行如何改變什麼(和next 2)'dt.Rows [0] [「Job」] = txtjobE.Text;'總是從查詢中選擇第一行。 – gzaxx 2013-02-08 13:49:22

回答

1

是因爲你很難在它編碼值0這個代碼在默認情況下將只更新第一項

 dt.Rows[0]["Job"] = txtjobE.Text; 
     dt.Rows[0]["ChildNo"] = txtchildnoe.Text; 
     dt.Rows[0]["Salary"] = txtsalary.Text; 

只是聲明一個變量

int i = 0; 
    //change the value of I to desired value and less than dt.Rows.Count() 
    dt.Rows[i]["Job"] = txtjobE.Text; 
    dt.Rows[i]["ChildNo"] = txtchildnoe.Text; 
    dt.Rows[i]["Salary"] = txtsalary.Text; 
-1

目標使用變量特定行:

識別DB行進行編輯,如:

int i = idOfUser // e.g. id = 3 

    dt.Rows[i]["Job"] = txtjobE.Text; 
    dt.Rows[i]["ChildNo"] = txtchildnoe.Text; 
    dt.Rows[i]["Salary"] = txtsalary.Text; 
+0

你想在這裏做什麼?這將更新具有相同值的所有行。 txtjobE肯定是一個文本框 – 2013-02-08 13:56:46

+0

公平點 - 我在印象之下@mahta想要根據下拉菜單更新數據庫中的所有項目。再次想到,是的,這將是一個非常奇怪的要求。我編輯過,但現在它與你的答案非常相似(對不起)。 – WheretheresaWill 2013-02-08 14:10:24

+0

嗨我改變了我的代碼,但它劑量工作尚未 int i = cmbp.SelectedIndex; (dt.Rows.Count> 0) dt.Rows [i] [「Job」] = txtjobE.Text; dt.Rows [i] [「ChildNo」] = txtchildnoe.Text; dt.Rows [i] [「Salary」] = txtsalary.Text; db.UpdateDatatable(dt,「dbo.Web_Personnel」); } – 2013-02-08 14:41:27

相關問題