問題が発生しています。最初の 1 つはproject
、2 番目はskill
、3 番目はrequiredskill
で、最初の 2 つのテーブル間のリンクです。どちらの主キーも、外部キーとして 3 番目のテーブルにあります。
プログラムのある時点で、 を作成project
してデータベースに保存します。requiredskill
その直後に、テーブルの特定の主キーとskill
作成したばかりのプロジェクトの主キーの2 つの値をテーブルに挿入します。
次のコードでデータを挿入します。
OracleCommand cmd = new OracleCommand();
cmd.Parameters.Add(new OracleParameter("projID", project.ProjId));
foreach (Skill skill in skills)
{
cmd.Connection = conn;
cmd.Parameters.Add(new OracleParameter("skillID", skill.SkillID));
cmd.CommandText = "INSERT INTO REQUIREDSKILL VALUES(:skillID, :projID)";
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (OracleException)
{
}
finally
{
conn.Close();
}
}
クエリを実行するとすぐにOracleException
、プロジェクト ID (テーブルの主キーproject
) が存在しないことがわかりますが、ブレークポイントを使用して、実行時にデータがテーブルにあることを確認しました。 . 誰もこれに対する答えを持っていますか?