مشکلی عجیب در آپدیت دیتا گرید در عمل ویرایش!!!
با عرض سلام،ادب و احترام
من برنامه دارم که مبتنی بر پایگاه داده بوده و عملیات افزودن،حذف و ویرایش را انجام می دهد
برای آپدیت دیتا گریدم از کد زیر بهره می برم:
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"); }
8 پاسخ
سلام
چرا از ItemsSource استفاده میکنید
myDataGrid.DataSource = db.tblNames.ToList();
datasource توی ویندوز فرم جواب میده.من از WPF بهره می برم.من توی ویندوز فرم مشکلی ندارم تنها توی wpf هست که توی این مشکل گیر کردم.
تشکر بابت پاسخ تون
من برای ویرایش،یک پروسیجر نوشتم و آن را فراخوانی می کنم.برای راحتی کار هم تنها فیلدی که 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"); }
سلام
دستور pEdit را میشه قرار بدهید
سلام
دوست عزیز منظورم خود تابع pEdit که نوشته اید نه کدی که قرار داده اید
سلام
این را چک کن
db.pEdit(9, txtName.Text, txtFamily.Text); db.SaveChanges(); myDataGrid.ItemsSource = db.tblNames.ToList();
SaveChanges(); رو نمیشناسه!کدهای مشابه اینو بررسی کردم.بعد از کلی جستجو متوجه شدم که یه تغییری باید توی بایندینگ بدیم(تو کدهای xaml)
بابت توجه شما هم سپاسگزارم
آپدیت انجام میشه، ولی در همون لحظه توی دیتاگرید اعمال نمیشه!
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