C# 在依赖表上插入Access数据库时出现问题

C# 在依赖表上插入Access数据库时出现问题,c#,ms-access,insert,oledb,C#,Ms Access,Insert,Oledb,我有一个access数据库和我的工作,我试图插入,但我不断得到 '无法添加或更改记录,因为表'Projects'中需要相关记录。' 我正在运行此查询:插入已分配的任务、项目、说明值@assign、@Project、@Description 关于这一结构: 这段代码用C语言编写,带有OleDb。。。对其他查询正常工作的命令和连接: 私有void addTaskBTN_单击对象发送者,事件参数e { //分配id已为已知,且类型为integer。 字符串查询=从Project\u Name=@Pr

我有一个access数据库和我的工作,我试图插入,但我不断得到

'无法添加或更改记录,因为表'Projects'中需要相关记录。'

我正在运行此查询:插入已分配的任务、项目、说明值@assign、@Project、@Description

关于这一结构:

这段代码用C语言编写,带有OleDb。。。对其他查询正常工作的命令和连接:

私有void addTaskBTN_单击对象发送者,事件参数e { //分配id已为已知,且类型为integer。 字符串查询=从Project\u Name=@Project的项目中选择Project\u ID; OleDbConnection con=新的OleDbConnection con_字符串; OleDbCommand cmd=新的OleDbCommandquery,con; cmd.Parameters。AddWithValue@project,projectComboBox.Text; 不公开; OleDbDataReader=cmd.ExecuteReader; 边读边读 { project_id=Convert.ToInt16reader[0]; Console.WriteLineproject\u id; } con.关闭; Console.WriteLinesubmit:+project\u id++employee\u id++descriptionTextBox.Text++monthCalendar1.SelectionStart; Console.WriteLinemonthCalendar1.SelectionStart; query=插入已分配的任务、项目、说明值@assign、@Project、@Description; con=新的OLEDB连接con_字符串; cmd=新的OleDbCommandquery,con; cmd.Parameters.Clear; cmd.Parameters。AddWithValue@project,项目编号; cmd.Parameters。AddWithValue@assign,雇员身份证; cmd.Parameters。AddWithValue@description,descriptionTextBox.Text.ToString; //cmd.Parameters。AddWithValue@deadline,monthCalendar1.SelectionStart; 不公开; cmd.ExecuteNonQuery; con.关闭; 这个.关闭,;
} Steve正确地识别了错误,您必须将参数按正确的顺序排列。我的解决方法是按顺序排列参数。

无论您插入的项目id在项目表中不存在,都需要在您将其添加到任务之前,存在外键约束。尝试调试以查看插入的实际值。将这些值添加到问题中。这是一个经典。您按错误的顺序添加参数。您的project_id值用于指定的字段,而指定的字段接收project_id值。OleDb无法通过查看参数的名称来洗牌参数集合。它盲目地按照你添加参数的顺序设置参数哇,非常感谢!我觉得这个问题很糟糕,但现在我希望每个人都能从中学习!正如我在评论中所说的那样。这是一个经典问题。这本书有许多副本。对这个问题再加上一个答案是没有意义的。