如何将文本字段中的数据插入数据库的外键中

问题描述 投票:0回答:2

如何将文本字段中的数据插入数据库的外键中。基本上,我有名为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 + "');";
c# mysql sql visual-studio qsqlquery
2个回答
0
投票

如果您要添加分配给现有角色的新员工,那么更好的设计是将dropdown填充为所有角色,而不是textbox供用户输入。

下拉列表应填充“角色”表中的所有“角色”。 (将下拉菜单的SelectedValue属性映射到-RoleId,将SelectedText映射到RoleName。)>

[提交表单时,您将获得SelectedValue(RoleId),可以直接将其作为INSERT语句的一部分发送,即dropDownRole.SelectedValue而不是txtRoleId.Text

注意:您的插入查询似乎是SQL Injection的经典候选者。我建议您将其转换为Parameterized query


0
投票

我认为您应该这样做:

© www.soinside.com 2019 - 2024. All rights reserved.