70٪ تخفیف ویژه جشنواره تابستانه توسینسو
پایان تخفیف تا:
مشاهده دوره‌ها
0

مشکلی عجیب در آپدیت دیتا گرید در عمل ویرایش!!!

با عرض سلام،ادب و احترام

من برنامه دارم که مبتنی بر پایگاه داده بوده و عملیات افزودن،حذف و ویرایش را انجام می دهد

برای آپدیت دیتا گریدم از کد زیر بهره می برم:

myDataGrid.ItemsSource = db.tblNames.ToList();

این کد در همان لحظه ای که داده ای را به دیتا گرید می افزایم یا داده ای را حذف می نمایم،تغییرات را در دیتا گرید اعمال می کند ولی در مورد ویرایش عمل نمی کند!!!باید حتما پنجره برنامه را بسته و دوباره باز کنم تا تغییر در داده ویرایش شده را ببینم!!!

کد من برای افزودن داده:

private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            db.pSave(txtName.Text,txtFamily.Text);
            myDataGrid.ItemsSource = db.tblNames.ToList();
            MessageBox.Show("OK");
        }

کد من برای ویرایش داده(در اینجا تنها عنصر با ID عدد 9 را ویرایش می نمایم.برای سادگی این کار را کردم):

private void btnEdit_Click(object sender, RoutedEventArgs e)
        {
            db.pEdit(9, txtName.Text, txtFamily.Text);
            myDataGrid.ItemsSource = db.tblNames.ToList();
            MessageBox.Show("OK");
        }
پرسیده شده در 1396/12/13 توسط

8 پاسخ

0

سلام

چرا از ItemsSource استفاده میکنید

 myDataGrid.DataSource = db.tblNames.ToList();
پاسخ در 1396/12/13 توسط
0

datasource توی ویندوز فرم جواب میده.من از WPF بهره می برم.من توی ویندوز فرم مشکلی ندارم تنها توی wpf هست که توی این مشکل گیر کردم.

تشکر بابت پاسخ تون

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

من برای ویرایش،یک پروسیجر نوشتم و آن را فراخوانی می کنم.برای راحتی کار هم تنها فیلدی که ID آن 9 است را ویرایش می نمایم.

private void btnEdit_Click(object sender, RoutedEventArgs e)
        {
            db.pEdit(9, txtName.Text, txtFamily.Text);
            myDataGrid.ItemsSource = db.tblNames.ToList();
            MessageBox.Show("OK");
        }
پاسخ در 1396/12/13 توسط
0

سلام

دوست عزیز منظورم خود تابع pEdit که نوشته اید نه کدی که قرار داده اید

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

سلام

این را چک کن

db.pEdit(9, txtName.Text, txtFamily.Text);
db.SaveChanges();
myDataGrid.ItemsSource = db.tblNames.ToList();
پاسخ در 1396/12/13 توسط
0

SaveChanges(); رو نمیشناسه!کدهای مشابه اینو بررسی کردم.بعد از کلی جستجو متوجه شدم که یه تغییری باید توی بایندینگ بدیم(تو کدهای xaml)

بابت توجه شما هم سپاسگزارم

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

آپدیت انجام میشه، ولی در همون لحظه توی دیتاگرید اعمال نمیشه!

ALTER PROCEDURE [dbo].[pEdit] @ID int,@name nvarchar(50),@family nvarchar(50)
	
AS
BEGIN
	update tblName set name=@name,family=@family
	where ID=@ID
END
پاسخ در 1396/12/13 توسط

پاسخ شما