استفاده از comboBox در ثبت اطلاعات
سلام و خسته نباشید.
داخل برنامه سی شارپ یک فرم ثبت کالا قرار داره که نوع کالا و نوع رنگ کالا به صورت صفحه کشویی (comboBox) از دیتابیس sql بنام TableKala (برای کالا) و تیبل TableColor (برای رنگ کالا) استفاده شده
الان یک تیبل سوم TableEnd برای ثبت اطلاعات کامل کالا وجود داره.
فقط نمی دونم چطور باید وقتی کالا و رنگ انتخاب شدن ، این اطلاعات به صورت Id موجود در هر تیبل برای تیبل آخر ارسال بشه و داخل آن ذخیره شود؟؟
داخل تیبل آخر ستون هایی با نام KalaID و ColorID می باشد که به صورت کلید خارجی به آن تیبلها متصل شدن و از نوع int هستن
9 پاسخ
جناب مهندس کل کد فرم ذخیره همین هست
ممنون از شما
سلام
کد خودتان را از طریق ابزار بالای پست نمایش دهید بهتره است
اما بنظرم اینگونه کدتان را اصلاح کنید درست بشه
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("کالا جدید ثبت شد");
}
ممنون از پاسخ شما جناب مهندس.
اصل کار من به این صورت هست. یک فرم ساده که اطلاعات comboBox از دیتابیس می خونه
داخل دیتابیس sql سه تا تیبل وجود داره که با انتخاب آیتم از comboBox ، اطلاعات انتخاب شده در تیبل سوم Ending باید ذخیره بشه
در زمان اجرای کلید ثبت خطای زیر را نشان میده
سلام
کدتان را قرار دهید تا باهم تصحیح کنیم
شما دارید اشتباه کد میزنید
سلام
دقیقا نفهمیدم چی می خواهید
اما اگر در جدول اصلی خودتان با جداول دیگر که کمبوباکسهارا مقدار دهی میکنید کلید خارجی وجود دارد ومی خواهید Id مربوطه را ارسال کنید کافیه هنگام ثبت از قطعه کد زیر برای ارسال id کمبوباکس مربوطه استفاده کنید
Convert.ToInt32(cbo1.SelectedValue)
البته خط 33 غلط املایی داشت Colorid اصلاح شد
سلام
دوست عزیز کد را کپی میکردی بهتر بود تا عکس بذاری
اما شما
KalaId,ColorId را مقدار دهی نکرده ای چون در جدول notNull هستند
در ضمن برای Endcolor هم مقدار کموباکس را باید قرار دهی نه Id کموباکس را
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("کالا جدید ثبت شد");
}