PDA

View Full Version : مشکل در update دیتا بیس با DataTable & TableAdapte ؟



mdssoft
جمعه 20 دی 1387, 14:54 عصر
سلام به همگی .
من یه DataBase (http://i44.tinypic.com/6zn8td.jpg) تو پروژه ام ساختم با نام Database1.mdf
خود VS2008 SP1 یه DataSet به پروژه من اضافه کرد با نام Database1DataSet
من هم یه DataTable (http://i40.tinypic.com/332yttv.jpg) برای update و به روز رسانی DataBase به پروژه اضافه کردم .
حالا من میخوام که دیتا بیس رو با DataSet & DataTable & TableAdapter به روز کنم و به دیتا بیس با ایت سه شی دستیابی داشته باشم .
من از این کد استفاده کردم . هیچ گونه exception ی هم نمیده .


Database1DataSetTableAdapters.eventsTableTableAdap ter eventsTableTableAdapte =
new WpfApplication1.Database1DataSetTableAdapters.even tsTableTableAdapter();
Database1DataSet.eventsTableDataTable eventsTableDataTable =
new Database1DataSet.eventsTableDataTable();
eventsTableTableAdapte.Fill(eventsTableDataTable);

var id = (from c in eventsTableDataTable.Distinct()
select c.id).Last();
id++;

DataRow newDataRow = eventsTableDataTable.NewRow();
newDataRow["event"] = "event" + id.ToString();
newDataRow["date"] = id;
eventsTableDataTable.Rows.Add(newDataRow);
eventsTableTableAdapte.Update(eventsTableDataTable );

eventsTableTableAdapte.Dispose();
eventsTableDataTable.Dispose();اما بعد از اجرای این کد دیتا بیس رو که نگاه میکنم هیچ تغییری نکرده و همون اطلاعات قبلی توش هست .
میشه راهنماییم کنید .
آیا کد و روش من درسته .
ممنون از شما .

محمدامین شریفی
جمعه 20 دی 1387, 17:20 عصر
منم همین مشکل را داشتم،و اینکار را کردم.
فایل exe برنامه را را اجرا کردم،بعد فایل رو یک بار بستم و پس از باز کردن میدیدم که اطلاعات بدرستی نمایش داده میشوند،و data base هم update میشود،ولی توی VS پایگاه داده ام بعد از restart برنامه،reset میشد!!!!.
ولی برنامه ام هیچ مشکلی نداشت.
پیروز باشی

mdssoft
جمعه 20 دی 1387, 22:37 عصر
یعنی من DataBase رو برم تو MSSQL ببینم ؟
تو VS2008 اشتباه نشون میده !

محمدامین شریفی
جمعه 20 دی 1387, 22:57 عصر
یعنی من DataBase رو برم تو MSSQL ببینم ؟
تو VS2008 اشتباه نشون میده !
دوست من این که گفتم تجربه شخصیم بود.خودم هم با مشکل شما 2 بار توی پروژه هایی که با vs2008 بود مواجه شدم،ولی توی vs2005 همه چیز درست بود.و خیلی دوست دارم دلیلش رو بدونم.
توی پروژه ای که با asp.net داشتیم با attach کردن مقدار درست نشان داده میشد.ولی توی 2 تا پروژه #C بعد از reconnect کردن SQL Express خود VS داده ها مثل روز اولش میشد،که البته با publish کردن هم مشکل برطرف میشه

mdssoft
جمعه 20 دی 1387, 23:00 عصر
ممنون ، اما اگر ممکن هست بچه های دیگر هم اگر می تونن کمک کنن .

لا لايي
جمعه 20 دی 1387, 23:36 عصر
سلام
در property آن ديتا بيس كه اضافه كرديد گزينه Copy to output Directoryراكنترل نمائيد كه Copy always نباشد.

محمدامین شریفی
جمعه 20 دی 1387, 23:53 عصر
سلام
در property آن ديتا بيس كه اضافه كرديد گزينه Copy to output Directoryراكنترل نمائيد كه Copy always نباشد.
به نظر شما این دلیل reset شدن است؟
اگر رفیق مشکلت حل شد لطفا اطلاع بده،چون مشکل من هم هست.

ممنون

mdssoft
شنبه 21 دی 1387, 00:13 صبح
سلام
در property آن ديتا بيس كه اضافه كرديد گزينه Copy to output Directoryراكنترل نمائيد كه Copy always نباشد.
ممنون از جواب شما .
گزینه های properties دیتا بیس من اینا بودن (http://i39.tinypic.com/b9ajht.jpg) .
در حالت Do not Copt که میزارم ، کدی که نوشته بودم تو این خط exception زیر رو میده :


eventsTableTableAdapte.Fill(eventsTableDataTable);
//An attempt to attach an auto-named database for file D:\My works\C#\WpfApplication1\WpfApplication1\bin\Debug \Database1.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.به طور پیش فرض هم روی Copy Always بود .
وقتی هم که روی copy if newer میگذارم مثل قبل هیچ تغییری تو DB دیده نمیشه !

میشه منو راهنمایی کنید

محمدامین شریفی
شنبه 21 دی 1387, 21:02 عصر
یعنی هیچ کس دیگر با این مشکل بر نخورده؟
فکر کنم اگر این تاپیک بره توی قسمت #C بهتر جواب میگیره.

mostafaaa
یک شنبه 22 دی 1387, 10:18 صبح
سلام دوست من
این مشکل نیست مزیته
http://barnamenevis.org/forum/showthread.php?t=139364
در هر صورت زمانی که copy if newer میزاریتش قاعدتا نباید مشکلی باشه!!
دقیق تر بررسی کنید و نتیجش رو بگید.

mdssoft
یک شنبه 22 دی 1387, 13:42 عصر
وقتی رو copy if newer میزارم ، بازم تغییرات تو دیتا بیس اعمال نمیشه !!!