دریافت pk از دیتابیس و ثبت در یک جدول دیگر

Jamshid.Bastani

New Member
با درود.

ببخشید نتونستم " عنوان " بهترین را پیدا کنم.

من یک جدول دارم به نام " Address " که دارای یک کلید PK هست و یک جدول نیز به نام "Tel" که دارای یک PK , FKهست.
یعنی در جدول آدرس »»» AddID = PK و در جدول تلفن »»» TelID = PK & AddID = FK

چیز عادی که وجود دارد این است که هر آدرس حداقل دارای یک تلفن ویا بیشتر است.

مثلا من میام یک آدرس را وارد می کنم و براش 4 تا تلفن ثبت می کنم.

پس من باید بیام آدرس را در یک تیبل و تلفن ها را در تیبل دیگر و این ها را به یکدیگر مربوط کنیم که این تلفن ها مربوط به این آدرس است و این تلفن مربوط به یک آدرس دیگر است.

امیدوارم که تونسته باشم توضیح دهم.

سوال :

حالا من نمی دونم چه طور این pk را فراخوانی کنم و در یک متغییر بریزم و آن را در جدول تلفن ها ثبت کنم، که تلفن و آدرس به یکدیگر مرتبط گردند.


با سپاس
 

the_king

مدیرکل انجمن
با درود.

ببخشید نتونستم " عنوان " بهترین را پیدا کنم.

من یک جدول دارم به نام " Address " که دارای یک کلید PK هست و یک جدول نیز به نام "Tel" که دارای یک PK , FKهست.
یعنی در جدول آدرس »»» AddID = PK و در جدول تلفن »»» TelID = PK & AddID = FK

چیز عادی که وجود دارد این است که هر آدرس حداقل دارای یک تلفن ویا بیشتر است.

مثلا من میام یک آدرس را وارد می کنم و براش 4 تا تلفن ثبت می کنم.

پس من باید بیام آدرس را در یک تیبل و تلفن ها را در تیبل دیگر و این ها را به یکدیگر مربوط کنیم که این تلفن ها مربوط به این آدرس است و این تلفن مربوط به یک آدرس دیگر است.

امیدوارم که تونسته باشم توضیح دهم.

سوال :

حالا من نمی دونم چه طور این pk را فراخوانی کنم و در یک متغییر بریزم و آن را در جدول تلفن ها ثبت کنم، که تلفن و آدرس به یکدیگر مرتبط گردند.


با سپاس

نوع بانک اطلاعاتی تون رو مشخص کنید، فرضا SQL Server یا Microsoft Access و بعد جداول رو در بانک اطلاعاتی تون بسازید. تا اینجا اش ربطی به کد نویسی نداره
و معمولا برای طراحی بانک اطلاعاتی از نرم افزار هایی مثل SQL Server Management Studio یا Microsoft Access استفاده میشه.
در ویژوال استدیو بانک اطلاعاتی ایجاد شده رو به پروژه تون اضافه می کنید، بصورت خودکار تعداد زیادی کلاس برای دسترسی ساده به بانک اطلاعاتی تون ایجاد میشه.

آدرس مورد نظر رو در جدولی که مربوط به آدرس ها است مشخص می کنید، حالا یا با جستجو بر اساس یک آدرس خاص یا با انتخاب کردن سطر شماره n ام اون جدول.
بعد مقدار فیلد کلید اش رو در جدولی که مربوط به تلفن ها است جستجو می کنید، تعدادی سطر (یک مجموعه Rows) بدست می آورید که همه شان مربوط به آن آدرس اند.
برای نحوه استفاده از اون کلاس ها در چندین تاپیک مثال هست، اضافه کردن رکورد جدید، حذف کردن رکورد، جستجو و ...

حذف و اديت در ديتابيس

ارتباط دادن با ديتا بيس

دیتابیس مشترک

دیتابیس با سی شارپ
 

Jamshid.Bastani

New Member
ممنونم از پاسخ.

اما حس می کنم منظورم رو بد رسووندم.

من یک شخص دارم به کد ملی 001122334455 سپس میاد یک آدرس ثبت میکنه که id این آدرس در جدول میشه به فرض عدد 10
حالا ما باید چه طوری این id رو از جدول آدرس بدست بیاوریم و سپس بریزیم تویه یک متغییر مثل idadd که بعد از وارد کردن مشخصات تلفن این متغییر نیز به همراه همه مشخصات ثبت بشه.
بعدش هم که معلوم میشه که این تلفن مربوط به این آدرسه.

مشکل من اینه که نمی دونم از طریق کد نویسی چه طوری id اون آدرس ثبت شده رو بدست بیاورم.

ممنونم.
 

the_king

مدیرکل انجمن
ممنونم از پاسخ.

اما حس می کنم منظورم رو بد رسووندم.

من یک شخص دارم به کد ملی 001122334455 سپس میاد یک آدرس ثبت میکنه که id این آدرس در جدول میشه به فرض عدد 10
حالا ما باید چه طوری این id رو از جدول آدرس بدست بیاوریم و سپس بریزیم تویه یک متغییر مثل idadd که بعد از وارد کردن مشخصات تلفن این متغییر نیز به همراه همه مشخصات ثبت بشه.
بعدش هم که معلوم میشه که این تلفن مربوط به این آدرسه.

مشکل من اینه که نمی دونم از طریق کد نویسی چه طوری id اون آدرس ثبت شده رو بدست بیاورم.

ممنونم.
شما برای کد ملی این شخص یک فیلد در جدول اول دارید؟ بر اساس اون فیلد جدول رو جستجو می کنید، فرضا :
کد:
DataRow[] rows = table1.Select("KodeMelli = '001122334455'");
اسم شیء رو table1 فرض کردم اما در کل نحوه تعریف کردن شیء Table و Adapter در اون تاپیک های معرفی شده هست.
الان rows تمامی سطر هایی است که کد ملی شون 001122334455 ئه، ممکنه خالی هم باشه.
اما اگر خالی نباشه [rows[0 اولین سطر (شایدم تنها سطر) پیدا شده است و ["rows[0]["ID مقدار فیلد ID اون سطر ئه که شما در idadd قرارش می دهید :
کد:
if (rows.Length > 0)
{
	string idadd = (string)rows[0]["ID"];
}

البته اگر اون table1 از نوع کلاسی باشه که برای جدول تون ایجاد میشه، فیلد ها رو با اسم شون داره :
کد:
if (rows.Length > 0)
{
	string idadd = rows[0].ID;
}

حالا شما در جدول دوم می توانید شماره تلفن جدیدی رو با این ID ثبت کنید :
کد:
DataRow newRow = (DataRow)table2.NewRow();
newRow["ID"] = idadd;
newRow["Tel"] = "123456789";
table2.Rows.Add(newRow);
adapter2.Update(table2);
 

جدیدترین ارسال ها

بالا