如何将文本字段中的数据插入数据库的外键中。基本上,我有名为Employee和Role的表,RoleId是Employee中的外键,但是角色文本字段是字符串。我有这个
String Query = "insert into EMPLOYEE (LastName,FirstName,Manager,RoleId,HireStatus) values('" + this.txtLName.Text + "','" + this.txtFName.Text + "','" + this.txtManager.Text + "','" + this.txtRoleId.Text + "','" + this.txtHireStatus.Text + "');";
编辑-我有这个,但是我不能使用以下字符串进行选择
string Query = "insert into EMPLOYEE(LastName,FirstName,RoleId,Manager,HireStatus) values('" + this.txtLName.Text + "','" + this.txtFName.Text + "','" + ( SELECT RoleId From Role WHERE Role.RoleId = this.txtRole.Text ) + "','" + this.txtManager.Text + "','" + this.cmbHireStatus.Text + "');";
如果您要添加分配给现有角色的新员工,那么更好的设计是将dropdown
填充为所有角色,而不是textbox
供用户输入。
下拉列表应填充“角色”表中的所有“角色”。 (将下拉菜单的SelectedValue
属性映射到-RoleId,将SelectedText
映射到RoleName。)>
[提交表单时,您将获得SelectedValue(RoleId),可以直接将其作为INSERT
语句的一部分发送,即dropDownRole.SelectedValue
而不是txtRoleId.Text
注意:您的插入查询似乎是SQL Injection的经典候选者。我建议您将其转换为Parameterized query。
我认为您应该这样做: