2016-01-01 148 views
0

我在我的数据库表2:ASP.NET - 下拉列表

Employee (ID , NAME , SALARY , departmentNo) 

ID为Department.ID主键和departmentNo外键

Department (ID , Name , Location) 

ID是主键

所以我想下拉列表显示在部门的表格名称上,当用户按下“添加”按钮时,它应该在表格上保存departmentNo。

回答

-1

这是您的问题的解决方案。我已经使用了一些额外的变量来检查值是否到来,您可以根据需要替换它们。

db_connection(); 
     string id=null; 
     string h = comboBox1.SelectedValue.ToString(); 
     string select = "select ID from Department where Name='" + h + "'"; 
     SqlCommand cmd=new SqlCommand(select,Cn); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      id = dr[0].ToString(); 
     } 
     dr.Close(); 
     select = "insert into Employee (NAME,SALARY,departmentNo)values(@NAME,@SALARY,@departmentNo)"; 
     SqlCommand cmd1 = new SqlCommand(select, Cn); 
     cmd1.Parameters.AddWithValue("@NAME", textBox1.Text); 
     cmd1.Parameters.AddWithValue("@SALARY", textBox2.Text); 
     cmd1.Parameters.AddWithValue("@departmentNo", id); 
     cmd1.ExecuteNonQuery(); 
+0

你似乎忘记了问题所在的位“我想使窗体上显示的下拉列表”。另外,第一个查询随机应用时不会使用参数,因此容易受到SQL注入攻击。也不清楚为什么这第一个查询甚至接受一个参数 - 第一个目标是让所有部门的下拉列表 – ADyson

+0

@ADyson我不明白一件事,如果有人知道这个问题的更好答案,那么他们应该提供问题的答案而不是提供这样的建议和意见。 –

+0

或者你可以使用这个建议来改善你的答案并获得更多的赞扬。就我个人而言,我已经投票决定将问题过于宽泛,因为它要求很多,所以我没有自己回答。但是我回顾了我近期的一些事情,并且自你回答以后,答案可以改善,我想我会提出一个建议。如果你不想改善答案,那就是如果你选择的话。 – ADyson