PDA

View Full Version : سوال: اشکال در update بوسیله لینک



aliaghaaaaa
جمعه 18 بهمن 1392, 10:59 صبح
سلام.
من برای update یه فیلد از جدولم کد زیر رو نوشتم ولی بعد از update، وقتی دوباره select می کنم می بینم تغییری نکرده. error هم نمیده.
اشکالش کجاست؟ ممنون میشم اگه راهنمایی کنید.


try
{
var db = new DataClasses1DataContext();
var query = db.Setts.Where(c=> c.sid == 1).Single();
query.PicAdr = folderBrowserDialog1.SelectedPath.ToString();

db.SubmitChanges();
System.Media.SystemSounds.Asterisk.Play();
FarsiMessage.Show("ثبت آدرس با موفقیت انجام شد", "ثبت موفق...", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Information);
}
catch (Exception msg)
{
System.Media.SystemSounds.Exclamation.Play();
FarsiMessage.Show(msg.Message, "خطا در ثبت آدرس", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Error);
}

ممنون.

مهران موسوی
جمعه 18 بهمن 1392, 14:36 عصر
از کد زیر استفاده کنید ، احتمال قوی خطایی رخ داده و به خاطر استفاده از SubmitChanges ملموس نبوده . کد زیر حداقل اگر خطایی وجود داشته رو بهتون گوشزد میکنه

تفاوت بین SubmitChanges و SaveChanges رو میتونید مطالعه کنید و دلیل خطا نگرفتن در استفاده از SubmitChanges رو بفهمید . ( خلاصه توضیحات بر اساس MSDN در زیر درج شده )

SaveChanges
operates within a transaction. SaveChanges will roll back that transaction and throw an exception if any of the dirty ObjectStateEntry objects cannot be persisted

SubmitChanges
starts a transaction and will roll back if an exception occurs while SubmitChanges is executing. However, this does not roll back the changes in memory or tracked by the DataContext; those changes will need to be rolled back manually. You can start with a new instance of the DataContext if the changes in memory are to be discarded
.


try
{
var db = new DataClasses1DataContext();
var query = db.Setts.Where(c=> c.sid == 1).First();
query.PicAdr = folderBrowserDialog1.SelectedPath.ToString();

db.SaveChanges();
System.Media.SystemSounds.Asterisk.Play();
FarsiMessage.Show("ثبت آدرس با موفقیت انجام شد", "ثبت موفق...", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Information);
}
catch (Exception msg)
{
System.Media.SystemSounds.Exclamation.Play();
FarsiMessage.Show(msg.Message, "خطا در ثبت آدرس", FarsiMessageBoxButtons.OK, FarsiMessageBoxIcons.Error);
}

aliaghaaaaa
جمعه 18 بهمن 1392, 20:12 عصر
سلام.
ببخشید ولی من از لینک استفاده می کنم. این دستور از entity هست.
میشه بازم راهنمایی کنید؟
ممنون میشم.