如何更新下拉列表中选择的项目asp.net c#

问题描述:

嗨我有一个下拉列表,我想更新一个项目,当我在下拉列表中选择它,我写了这个代码,但它只更新第一项:如何更新下拉列表中选择的项目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

是因为你很难在它编码值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; 

目标使用变量特定行:

识别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