PDA

View Full Version : ثبت نشدن تغییرات در دیتابیس



hamedj2001
چهارشنبه 07 اردیبهشت 1384, 16:53 عصر
سلام خسته نباشید
من برای updata کردن database از یک data adappter و dataset استفاده میکنم ولی متاسفانه تغییری در database ثبت نمیشه لطفا اگه کسی میتونه به من کمک کن
فایل کد ضمیمه کردم

مرسی

aidinwashere
چهارشنبه 07 اردیبهشت 1384, 20:44 عصر
من یه جواب مفصل به همچین سوالی دادم
در همین بخش جستجو کن

hamedj2001
پنج شنبه 08 اردیبهشت 1384, 07:48 صبح
میشه لطف کنین دقیق تر بگین تحت چه عنوانی میتونم توضیح شما رو ببینم

aidinwashere
پنج شنبه 08 اردیبهشت 1384, 13:46 عصر
در مورد Disconnected databases and datasources بگرد
با دوستی آنجا کلی بحث کردیم

Behrouz_Rad
پنج شنبه 08 اردیبهشت 1384, 16:20 عصر
نوشتن کد به طریقه ای که شما نوشتید، برای حالت DC Layer اصلا مناسب نیست.
در حقیقت شما کار خودتون رو سخت تر کردید.
ایجاد یک Command و پاس دادن دستور UPDATE و اجرای متد ExecuteNonQuery بهترین حالت است.
در ضمن، دستور UPDATE شما هم اشتباه نوشته شده. Syntax دستور Update اشتباه ست.
مثال از حالت DC Layer:


Dim strConnection As String = _
"Data Source=localhost;Initial Catalog=MyDB;" _
& "Integrated Security=True"
Dim cn As SqlConnection = New SqlConnection(strConnection)
cn.Open( )

Dim strSelect As String = _
"SELECT * FROM MyTable"
Dim da As SqlDataAdapter = New SqlDataAdapter(strSelect, cn)

Dim autogen As New SqlCommandBuilder(da)

Dim ds As DataSet = New DataSet()
da.Fill(ds, "MyTable")

Dim dt As DataTable = ds.Tables("MyTable")

'Edit a Record
Dim row As DataRow = dt.Select("MyField = 'Behrouz'")(0)
row("MyField") = "barnamenevis"

'Add a new Record
row = dt.NewRow( )
row("MyField1") = "Software"
row("MyField2") = "Programmer"
dt.Rows.Add(row)

'Delete Record(s)
row = dt.Select("MyField = 'Behrouz'")(0)
row.Delete( )

da.Update(ds, "MyTable")

cn.Close( )

hamedj2001
جمعه 09 اردیبهشت 1384, 12:22 عصر
سلام خیلی ممنون از کمکتون
مشکل تغییر در دیتا بیس حل شد ولی فکر میکنم در این روش راهی برای کنترل optimistic concurrency نداره یعنی اگر قبل از انجام عمل به روز رسانی توسط یک کاربر در رکورد تغییراتی داده شده باشه کاربر بعدی بدون مطلع شدن از تغییرات کاربر قبلی روی همین رکورد تغییرات رو اعمال میکنه لطفا اگر میشه در این مورد راهنمایی کنید
مرسی

Behrouz_Rad
جمعه 09 اردیبهشت 1384, 18:59 عصر
توضیحات کامل MSDN در مورد Concurrency درADO.NET

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnhcvs04/html/vs04i1.asp



So what happens if two users try to update the same row at the same time? For as long as shared databases have existed, questions like this have dogged developers. Today ADO.NET handles this issue deftly with an approach called optimistic concurrency. Rick Dobson shows you how it works and how to make your applications more robust in high-scalability environments.

hamedj2001
شنبه 10 اردیبهشت 1384, 07:06 صبح
سلام
خیلی متشکر از راهنماییهای بسیار مفیدتون
بعد از چند از روز بالاخره مشکل منو حل کردید