我很难运行此代码,我有两个选择语句在一个单一的查询与不同的“声明”,我想要的只是将其插入数据库只是“ID”只有这里是代码,如何从单个查询中的两个不同的select语句获取ID?
sqc.Open();
cmd = sqc.CreateCommand();
cmd.CommandText = "Select DepID from UserDept where Department [email protected] and Position [email protected] union all Select SalaryID from Salaries where Gradenumber [email protected] and StepNumber [email protected]";
cmd.Parameters.AddWithValue("@depe", cmbDept.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@posi", cmbPos.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@gn", cmbgrade.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@sn", cmbstep.SelectedItem.ToString());
sda = new SqlDataAdapter(cmd);
dt = new DataTable();
sda.Fill(dt);
foreach (DataRow rr in dt.Rows)
{
cmd = sqc.CreateCommand();
cmd.CommandText = "insert into UserInfo2 (AccountID,DeptID,SalaryGrade,DateEmp,DateHired) Values (@idd,@dep,@sal,@emp,@hired)";
cmd.Parameters.AddWithValue("@idd", "crap");
cmd.Parameters.AddWithValue("@dep", rr[0].ToString());
cmd.Parameters.AddWithValue("@sal", rr[1].ToString());
cmd.Parameters.AddWithValue("@emp", dtpEmployed.Value.ToShortDateString());
cmd.Parameters.AddWithValue("@hired", dtpPromoted.Value.ToShortDateString());
cmd.ExecuteNonQuery();
MessageBox.Show("Information successfully saved!", "Information!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
sqc.Close();
什么即时试图做的是,如果列名DEPID子项目必须dep232和SALARYID是SAL 232
我尝试在INSERT语句
cmd.Parameters.AddWithValue("@dep", rr[0].ToString());
cmd.Parameters.AddWithValue("@sal", rr[0].ToString());
这段代码的输出是列名DEPID它有子项sal243,它应该只有SALARYID 并且还有另一个DEPID是dep243的数据,但salaryID也有dep243。
你到底想做什么?两张桌子之间没有联系。这样你最终会搞乱第三张表中的所有数据。 – Shahbaz