PDA

View Full Version : خطا برای کلید خارجی



masuodv
شنبه 10 اردیبهشت 1390, 12:22 عصر
سلام.
من سه تا جدول دارم که توی هر سه id کلید اصلی است و اوتونامبره!
روش کار به این صورته که ابتدا یه query از جدول یک میگیره و id یکی از ردیف ها رو برمی گردونه!
بعد همین کارو برای جدول دو هم میکنه!
در آخر هم من این دو مقدار را می خوام تو جدول سوم وارد کنم که این ارور رو میده باید چکار کنم؟

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_DirectorFilm_FilmTable". The conflict occurred in database "VideoShop", table "dbo.FilmTable", column 'id'.
The statement has been terminated.

ممنون از راهنماییتون.

IsFull()
یک شنبه 11 اردیبهشت 1390, 23:30 عصر
اگر لطف کنید کویری تون رو هم بنوسید بهتر مشخص می شه

حمیدرضاصادقیان
دوشنبه 12 اردیبهشت 1390, 07:50 صبح
سلام
در جدول FilmTable فیلد ID شما میخواهید مقداری وارد کنید که در جدول Parent اون وجود نداره. فرضا در جدول DirectorFilm شما مقدار ID برابر 1 هست ولی شما میخواهید در جدول FilmTable مقدار 2 رو وارد کنید. چون مقدار 2 در جدول DirectorFilm نیست به شما داره خطا میده.

hastiam
شنبه 23 اردیبهشت 1391, 11:45 صبح
سلام
در جدول FilmTable فیلد ID شما میخواهید مقداری وارد کنید که در جدول Parent اون وجود نداره. فرضا در جدول DirectorFilm شما مقدار ID برابر 1 هست ولی شما میخواهید در جدول FilmTable مقدار 2 رو وارد کنید. چون مقدار 2 در جدول DirectorFilm نیست به شما داره خطا میده.

سلام دنبال جوابی برای سوالم می گشتم که این تاپیک رو دیدم چون سوالم مرتبط با این تاپیک بود گفتم بهتره همین جا سوالم رو بپرسم ممنون میشم اگه راهنماییم کنید. سوالم اینه :
من در جدولم فیلدی به نام ParentCode دارم که نوع داده ای آن int است که می تواند null هم باشد وقتی می خوام دستور insert رو اجرا کنم و ParentCode رو Null میدم خطا میگیره دستور insert به صورت زیر است:


public static int Insert(string Name, string ShowingCode, int? ParentCode, byte GLevel, bool State)
{
.......
cmd.CommandText = "Insert into dbo.TblGoods(Name,GLevel,State,ShowingCode,ParentC ode) Values (@gname,@level,@gstate,@gcode,@parent)";
cmd.Parameters.AddWithValue("@gname",Name);
cmd.Parameters.AddWithValue("@parent", ParentCode);
cmd.Parameters.AddWithValue("@gcode", ShowingCode);
cmd.Parameters.AddWithValue("@level",GLevel);
cmd.Parameters.AddWithValue("@gstate",State);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
......

حالا اگه مقداری داشته باشیم که Parent نداشته باشه باید چطوری بگم که مقدار این فیلد رو Null ثبت کنه؟ !!!

hamid_kha
چهارشنبه 27 اردیبهشت 1391, 16:56 عصر
سلام دنبال جوابی برای سوالم می گشتم که این تاپیک رو دیدم چون سوالم مرتبط با این تاپیک بود گفتم بهتره همین جا سوالم رو بپرسم ممنون میشم اگه راهنماییم کنید. سوالم اینه :
من در جدولم فیلدی به نام ParentCode دارم که نوع داده ای آن int است که می تواند null هم باشد وقتی می خوام دستور insert رو اجرا کنم و ParentCode رو Null میدم خطا میگیره دستور insert به صورت زیر است:


public static int Insert(string Name, string ShowingCode, int? ParentCode, byte GLevel, bool State)
{
.......
cmd.CommandText = "Insert into dbo.TblGoods(Name,GLevel,State,ShowingCode,ParentC ode) Values (@gname,@level,@gstate,@gcode,@parent)";
cmd.Parameters.AddWithValue("@gname",Name);
cmd.Parameters.AddWithValue("@parent", ParentCode);
cmd.Parameters.AddWithValue("@gcode", ShowingCode);
cmd.Parameters.AddWithValue("@level",GLevel);
cmd.Parameters.AddWithValue("@gstate",State);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
......

حالا اگه مقداری داشته باشیم که Parent نداشته باشه باید چطوری بگم که مقدار این فیلد رو Null ثبت کنه؟ !!!

دوست عزیزنباید همچین چیزی رخ بده چون شما در فیلد ParentCodeستون NotNull رو تیک زدید تا Null رو هم قبول کنه.