PDA

View Full Version : سوال: پیغام داده وابسته می باشد



saeed razaee
یک شنبه 16 مرداد 1390, 18:18 عصر
سلام
من دو تا جدول دارم مشخصات دانشجو و امانت که در جدول مشخصات دانشجو شماره دانشجویی کلید اصلی و این کلید اصلی در جدول دیگر کلید خارجی می باشد.داخل جدول اولی اطلاعاتی ثبت کردم مثلاً مشخصات دانشجو و در جدول دوم مثلاً امانت کتاب از شماره دانشجو نیز استفاده شده حالا از جدول اولی می خواهم یک رکورد را حذف کنم در حالی که شماره دانشجو در فرم امانت استفاده شده و عمل حذف انجام نمی شود چگونه موقع حذف کدی به برنامه اضافه کنم که به کاربر بگوید این داده وابسته می باشد.ابتدا داده وابسته را حذف کنید.
کدهای حذف از برنامه به صورت زیر می باشد.

SqlCommand ObjCommand = new SqlCommand("Delete From student Where stdid=@stdid;", fmain.con);
ObjCommand.Parameters.AddWithValue("@stdid", textBox1.Text);
fmain.con.Open();
ObjCommand.ExecuteNonQuery();
textBox1.Text = null;
textBox2.Text = null;
textBox3.Text = null;
textBox4.Text = null;
textBox5.Text = null;
Form1_Load(null, null);
fmain.con.Close ();

Legend M.A.R
دوشنبه 17 مرداد 1390, 06:14 صبح
خوب قبل از این کار (یعنی حذف کردن) یه کوئری بنویس که ببینه آیا چنین شماره دانشجویی توی جدول امانت کتاب هست یا نه اگر بود پیام بده یا کوئری خودتو اینطوری تغییر بده
SET @_Result = 0
if(exists(SELECT stdID FROM trusteeship WHERE stdID = @stdid))
SET @_Result = 1
else
Delete From student Where stdid=@stdid;
توی کد هم اینو اضافه کن
SqlParameter g_result = ObjCommand.Parameters.Add("@_Result", SqlDbType.Bit);
g_result.Direction = ParameterDirection.InputOutput;
if ((Boolean)g_result.Value)
MessageBox.Show("...");

saeed razaee
جمعه 21 مرداد 1390, 18:00 عصر
ببخشید خوب متوجه نشدم میشه کدهای خودم را اصلاح کنید.با تشکر

Legend M.A.R
جمعه 21 مرداد 1390, 18:48 عصر
SqlCommand g_command = new SqlCommand("SET @_Result = 0 if(exists(SELECT stdID FROM trusteeship WHERE stdID = @stdid)) SET "
+"@_Result = 1 else Delete From student Where stdid=@stdid", fmain.con);
SqlParameter g_result = ObjCommand.Parameters.Add("@_Result", SqlDbType.Bit);
g_result.Direction = ParameterDirection.InputOutput;
if ((Boolean)g_result.Value)
MessageBox.Show("...");

saeed razaee
جمعه 21 مرداد 1390, 23:01 عصر
سلام با این پیغام روبرو شدم مشکل کجاست73720