بهترین فرصت آموزش در جشنواره تخفیف های توسینسو بهترین فرصت آموزش در جشنواره تخفیف های توسینسو
مانده تا پایان تخفیف ها
مشاهده دوره ها
0

استفاده از comboBox در ثبت اطلاعات

سلام و خسته نباشید.

داخل برنامه سی شارپ یک فرم ثبت کالا قرار داره که نوع کالا و نوع رنگ کالا به صورت صفحه کشویی (comboBox) از دیتابیس sql بنام TableKala (برای کالا) و تیبل TableColor (برای رنگ کالا) استفاده شده

الان یک تیبل سوم TableEnd برای ثبت اطلاعات کامل کالا وجود داره.

فقط نمی دونم چطور باید وقتی کالا و رنگ انتخاب شدن ، این اطلاعات به صورت Id موجود در هر تیبل برای تیبل آخر ارسال بشه و داخل آن ذخیره شود؟؟

داخل تیبل آخر ستون هایی با نام KalaID و ColorID می باشد که به صورت کلید خارجی به آن تیبلها متصل شدن و از نوع int هستن

نمونه کار

پرسیده شده در 1396/12/24 توسط

9 پاسخ

0

جناب مهندس کل کد فرم ذخیره همین هست

کد

پاسخ در 1396/12/24 توسط
0

سلام

کد خودتان را از طریق ابزار بالای پست نمایش دهید بهتره است

اما بنظرم اینگونه کدتان را اصلاح کنید درست بشه

private void SaveKala_Click(object sender, RoutedEventArgs e) 
{ 

TableEnding tblEnd = new TableEnding(); 

tblEnd.EndColor = cmb_Color.Text; 
tblEnd.EndKala = cmb_Kala.Text; 
tblEnd.Colorid = Convert.ToInt32(cmb_Color.SelectedValue); 
tblEnd.Kalaid = Convert.ToInt32(cmb_Kala.SelectedValue); 

db.TableEndings.Add(tblEnd); 
db.SaveChanges(); 
MessageBox.Show("کالا جدید ثبت شد"); 
} 
پاسخ در 1396/12/24 توسط
0

ممنون از پاسخ شما جناب مهندس.

اصل کار من به این صورت هست. یک فرم ساده که اطلاعات comboBox از دیتابیس می خونه

فرم اصلی

داخل دیتابیس sql سه تا تیبل وجود داره که با انتخاب آیتم از comboBox ، اطلاعات انتخاب شده در تیبل سوم Ending باید ذخیره بشه

نمایش تیبل و کلید خارجی

در زمان اجرای کلید ثبت خطای زیر را نشان میده

خطا

پاسخ در 1396/12/24 توسط
0

سلام

کدتان را قرار دهید تا باهم تصحیح کنیم

شما دارید اشتباه کد میزنید

پاسخ در 1396/12/24 توسط
0

سلام

دقیقا نفهمیدم چی می خواهید

اما اگر در جدول اصلی خودتان با جداول دیگر که کمبوباکسهارا مقدار دهی میکنید کلید خارجی وجود دارد ومی خواهید Id مربوطه را ارسال کنید کافیه هنگام ثبت از قطعه کد زیر برای ارسال id کمبوباکس مربوطه استفاده کنید

Convert.ToInt32(cbo1.SelectedValue)
پاسخ در 1396/12/24 توسط
0

البته خط 33 غلط املایی داشت Colorid اصلاح شد

پاسخ در 1396/12/24 توسط
0

سلام

دوست عزیز کد را کپی میکردی بهتر بود تا عکس بذاری

اما شما

KalaId,ColorId را مقدار دهی نکرده ای چون در جدول notNull هستند

در ضمن برای Endcolor هم مقدار کموباکس را باید قرار دهی نه Id کموباکس را

پاسخ در 1396/12/24 توسط
0

private void Window_Loaded(object sender, RoutedEventArgs e)

{

cmb_Color.ItemsSource = db.TableColors.ToList();

cmb_Color.DisplayMemberPath = "ColorName";

cmb_Color.SelectedValuePath = "Colorid";

cmb_Kala.ItemsSource = db.TableKalas.ToList();

cmb_Kala.DisplayMemberPath = "KalaName";

cmb_Kala.SelectedValuePath = "Kalaid";

}

private void SaveKala_Click(object sender, RoutedEventArgs e)

{

TableEnding tblEnd = new TableEnding();

tblEnd.EndColor = Convert.ToInt32(cmb_Color.SelectedValue).ToString();

tblEnd.EndKala = Convert.ToInt32(cmb_Kala.SelectedValue).ToString();

db.TableEndings.Add(tblEnd);

db.SaveChanges();

MessageBox.Show("کالا جدید ثبت شد");

}

پاسخ در 1396/12/24 توسط

پاسخ شما