PDA

View Full Version : ذخیره داده در یک جدول با چندین کلید خارجی



saradarya
چهارشنبه 19 تیر 1392, 00:37 صبح
برای ذخیره داده ها از asp به sql در یک جدول که چندین کلید خارجی دارد چه کار باید کرد؟
درضمن نمیدونستم در کدوم تالار سوالمو مطرح کنم؟اگه اشتباس پیشاپیش معذرت

saradarya
چهارشنبه 19 تیر 1392, 11:42 صبح
آیا کسی نیست به سوال من پاسخ دهد؟

mahan.2002
پنج شنبه 20 تیر 1392, 07:22 صبح
سلام
شما سوالتو بنظرم مفهوم نیست؟؟ یکم واضح در مورد سوالتونو توضیح بدید!
...بعدهم بنظر نمیاد عنوان تایپک تو با متن تاپیکتون هیچ تناسبی توش بشه پیدا کرد !!

saradarya
پنج شنبه 20 تیر 1392, 14:51 عصر
من تو یه پروزه سه لایه تو قسمت دیتا یه جدولی دارم که چند تا کلید خارجی هم داره.
وقتی میخوام از لایه Presentation به جدولم داده وارد کنم هیچ اتفاقی نمی افته در حالی که برای یک جدول دیگه بدون کلید خارجی مشکلی نیست.

ali_md110
پنج شنبه 20 تیر 1392, 22:05 عصر
قسمتی از کد برنامتون بزارید تا مشخص بشه اشکال از کجاست
این امکان داره فیلدهای کلید خارجی که میخواین داده درونش ذخیره کنید با فیلد کلید اصلیشون یکی نباشه
مثلا کد گروه کالاتون که کلید اصلیه عدد 1 باشه و شما بخواهید توی جدول دوم عدد 2 بجاش ذخیره کنید

saradarya
پنج شنبه 20 تیر 1392, 22:50 عصر
این کلاسشه:
[public Person(int id, string firstname, string lastname, string fathername,
string nationalcode, string birthdate, int genderId, int eduDegreeId,
int addressId, string tel, string mobile, string email)

Id = id;
FirstName = firstname;
LastName = lastname;
FatherName = fathername;
NCode = nationalcode;
BirthDate = birthdate;
GenderId = genderId;
DegreeId = eduDegreeId;
AddressId = addressId;
Phone = tel;
Mobile = mobile;
Email = email;

}


این هم وقتی میخوام ذخیره کنم:
var person = new Person(-1, NamTxt.Text, FmlTxt.Text, DadTxt.Text, NcdTxt.Text, BrdTxt.Text,
Convert.ToInt32(GenderRadioBtnList.SelectedItem.Va lue), Convert.ToInt32(EduDropDownList.SelectedItem.Value ),
-1, PhnTxt.Text, CphTxt.Text, EmlTxt.Text);
person.Save();

مهدی هادیان2
پنج شنبه 20 تیر 1392, 23:54 عصر
بسم الله الرحمن الرحیم
با سلام
id,addressid رو -1 قرار دادید؛ یه کم مشکوک به نظر میاد.
BreakPoint بذارید ببینید مسئله از کجاست؟
موفق باشید.

saradarya
جمعه 21 تیر 1392, 00:42 صبح
مشکوک؟؟؟؟
برای اینکه با آی دی که خود sql میده پر بشه؟البته من این طور فکر میکنم.
اگر اشتباس لطفا بگید.

مهدی هادیان2
جمعه 21 تیر 1392, 00:51 صبح
بسم الله الرحمن الرحیم

مشکوک؟؟؟؟
برای اینکه با آی دی که خود sql میده پر بشه؟البته من این طور فکر میکنم.
اگر اشتباس لطفا بگید.
منظورتان این است که addressid رو خود SQL پر میکنه؟ در این قسمت باید idتون معتبر باشه. این منظور کلید خارجی ست.
موفق باشید.

ali_md110
جمعه 21 تیر 1392, 01:40 صبح
ببینید این -1 که برای آدرس ذکر کردید در جدول آدرسهاتون وجود داره یا نه؟

ببینید شما سه فیلد خارجی دارید ابتدا مراجعه کنید به جداول مربوطه و مقدار هر سه فیلد در جداول اصلی را یکبار بجای -1وConvert.ToInt32(GenderRadioBtnList.SelectedItem .Va lue), و Convert.ToInt32(EduDropDownList.SelectedItem.Value ), جایگذین کنید
بعدش منطورتون از :برای اینکه با آی دی که خود sql میده پر بشه؟ چیه؟