نمایش نتایج 1 تا 2 از 2

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

  1. #1

    Question مشکل ذخیره ردیف جدید datagrid در دیتابیس

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

       public class Contacts : INotifyPropertyChanged
    {
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity )]
    public int id { get; set; }

    private string _firstName;
    private string _lastName;
    public string FirstName
    {
    set
    {
    _firstName = value;
    if (PropertyChanged == null) return;
    onPropertyChanged("FirstName");
    }
    get { return _firstName; }
    }
    public string LastName
    {
    set
    {
    _lastName = value;
    if (PropertyChanged == null) return;
    onPropertyChanged("LastName");
    }
    get { return _lastName; }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void onPropertyChanged(string propertyName)
    {
    if (PropertyChanged == null) return;
    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
    }


    داخل فرم هم اینطوری در دیتاگرید استفاده میکنم
    public ObservableCollection<Contacts> contacts { get; set; }



    DbMainContext db = new DbMainContext();


    contacts = new ObservableCollection<Contacts>(db.Contacts.ToList( ));
    dataGrid_1.ItemsSource = contacts;


    دیتاگریدم رو بصورت دستی وقتی داخل سطرها و سلول هاش تغییری در مقدارشون میدم اینطوری اونو ذخیره میکنم و در دیتابیسم ذخیره میشه

     db.SaveChanges();



    الان دیتاگریدم درحالت CanUserAddRows="True" هست و وقتی با کلیک روی دیتاگرید سطر جدید اضافه میشه بعد سلول های سطر جدید را داخلش مقداری مینویسم میخوام این سطر هم در دیتاگریدم ذخیره بشه ولی db.SaveChanges هیچی ذخیره نمیشه.باید چیکار کنم تا بتونم این رو حل کنم ؟
    آخرین ویرایش به وسیله fatemeh_yagobi : سه شنبه 09 اسفند 1401 در 17:11 عصر

  2. #2
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: مشکل ذخیره ردیف جدید datagrid در دیتابیس

    احتمالاً دلیلی که تغییرات شما در دیتاگرید در دیتابیس ذخیره نمی‌شود، این است که شما به صورت پیش‌فرض از Entity Framework استفاده می‌کنید ولی مدیریت تراکنش‌ها به صورت دستی انجام نشده است. بنابراین، تغییرات شما در دیتاگرید در یک تراکنش جداگانه ذخیره نمی‌شود و در نتیجه در دیتابیس نیز ذخیره نمی‌شود.برای حل این مشکل، می‌توانید از یک تراکنش جدید برای ذخیره تغییرات استفاده کنید. برای این کار، کد زیر را به کد خود اضافه کنید:

    using (var transaction = db.Database.BeginTransaction()){
    try
    {
    db.SaveChanges();
    transaction.Commit();
    }
    catch (Exception ex)
    {
    transaction.Rollback();
    // handle exception
    }

    }


تاپیک های مشابه

  1. سوال: پرکردن دیتابیس با datagrid
    نوشته شده توسط hooman-2k در بخش C#‎‎
    پاسخ: 4
    آخرین پست: دوشنبه 19 شهریور 1397, 23:09 عصر
  2. ثبت اطلاعات در دیتابیس از طریق DataGrid
    نوشته شده توسط MRasoul در بخش WPF
    پاسخ: 4
    آخرین پست: یک شنبه 03 اسفند 1393, 21:01 عصر
  3. نمایش دوفیلد دیتابیس در یک فیلد DataGrid
    نوشته شده توسط ArAkBoY2 در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 26
    آخرین پست: سه شنبه 07 مرداد 1393, 17:52 عصر
  4. Insert کردن فیلد چک باکس datagrid در دیتابیس
    نوشته شده توسط bitaaa در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: سه شنبه 09 آذر 1389, 15:52 عصر
  5. سوال: مثال کاربردی dataGrid و دیتابیس
    نوشته شده توسط payman_xxp در بخش C#‎‎
    پاسخ: 19
    آخرین پست: یک شنبه 24 مرداد 1389, 10:11 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •