PDA

View Full Version : تکه کد update کردن یک رکورد با دیتا بیس accsess



forozeshfard
جمعه 01 دی 1385, 00:53 صبح
با سلام
دوستان من در برنامه خودم یک text box دارم که یک نام در اون textbox وارد می کنم و در دیتا گرید تمام جزئیات شامل (نام - فامیل - سن - آدرس) را بر می گرداند .
حالا بعنوان مثال در فیلد آدرس در دیتا گرید آدرس را تغییر می دهم و دکمه up date را می زنم و با این پیغام روبرو می شوم

prepare method requires all variable lenght parameters to have an explicitly set non-zero size

این سئوال برایم پیش می آید:
شاید تکه کد up date را اشتباه می نویسم و یا هرمشکل دیگر , که خواهشمندم راهنمایی نماید

با سپاس فراوان

reza_rad
شنبه 02 دی 1385, 08:05 صبح
کد آپدیت رو بذارید اینجا...

forozeshfard
شنبه 02 دی 1385, 08:45 صبح
Dim con As New OleDbConnection("Provider=Microsoft.jet.OLEDB.4.0;" & "Data Source=C:\a.mdb")

Dim a As New OleDbParameter
a.ParameterName = "@a


"%"+a.Value = "%" + TextBox1.Text
a.DbType = DbType.String
a.Direction = ParameterDirection.Input

da.SelectCommand.Parameters.Add(a)
() con.Open
Try
() da.UpdateCommand = New OleDbCommandBuilder(da).GetUpdateCommand

da.Update(ds, "table1")
() con.close

Catch ex As Exception
MessageBox.Show(ex.Message)

forozeshfard
شنبه 02 دی 1385, 18:24 عصر
جناب آقای راد سلام
تکه کد را گذاشتم ببخشید در کپی و past کردن جای بعضی از کارکترها عوض شده اگر مشکلی دیدید بگوید تا برطرف کنم

forozeshfard
یک شنبه 03 دی 1385, 10:50 صبح
خواهشمندم راهنمایی نمایید

reza_rad
یک شنبه 03 دی 1385, 11:50 صبح
بدون دیتا ست امتحانش کردید؟
یعنی دستور update رو با sqlCommand اجرا کنید ببینید جواب میده؟

forozeshfard
یک شنبه 03 دی 1385, 12:14 عصر
سلام - جناب آقای راد
متشکرم از توجه شما -
طبق فرموده شما من از oledbcommand استفاده کردم چون بانک اطلاعاتی من accsess می باشد ولی عملا امکان پذیر نیست چون من می خواهم یک رکورد را ویرایش کنم و با ید از کدهای update استفاده کنم بهر حال شاید من متوجه صحبتهای شما نمی شوم خواهشمندم اگر امکان دارد کد مورد نظر را در این قسمت قرار دهید تا انشااله مشکل حل شود

reza_rad
یک شنبه 03 دی 1385, 12:28 عصر
مثال:


dim cmd as new oledbcommand
cmd.connection=cn
cmd.text="update table1 set field1='value1'"
cmd.executenonquery()

forozeshfard
یک شنبه 03 دی 1385, 16:14 عصر
ضمن تشکر از شما جناب آقای راد
فکر می کنم احتیاج به مطالعه بیشتر دارم چون متوجه کدهای شما با برنامه خودم نمی شوم
با سپاس فراوان از توجه شما

vahidiran
یک شنبه 03 دی 1385, 20:30 عصر
دوست عزیز از داخل خود Access هم می تونی دستور sql رو تست کنی حداقل مطمئن می شی که sql که نوشتی درسته
برای این کار در access قسمت qoeries رو انتخاب کن بعد جدولی رو که می خواهی ر وش عملیات update انجام دهی اضافه کن بعد در قسمتی بعد از پنجره ای که ظاهز می شه در پنل بالای کلیک راست کن بعدش هم از منویی که ظاهر می شه sql view ر انتخاب کن بعد دستور sql رو بنویس بعدش هم از تولبار بلا access یک کلید مثل " ! " هستش که از اون می تونی برای اجرای دستور sql استفاده کنی ؟

reza_rad
دوشنبه 04 دی 1385, 10:04 صبح
http://support.microsoft.com/kb/308507

برای تست یکبار updatecommand رو بخونید حین اجرا ببینید جمله ی update ای که اجرا می کنه چیه؟

forozeshfard
سه شنبه 05 دی 1385, 09:04 صبح
بسیار از شما آقای راد متشکرم
متاسفانه در این کار گره افتاده یعنی هر کار می کنم مشکل بر طرف نمی شود
شاید هم من منظورم را بد بیان می کنم که دوستان نمی توانند راهنمایی کنند :
من یک گرید دارم که در آن گرید نام و فامیل یک نفر را نشان می دهد بعنوان مثال ( نام = مهدی فامیل = فروزش فرد ) حالا من نام را می خواهم تغییر دهم به علی و در گرید خود این کار را انجام می دهم و یک button دارم بنام (ذخیره) که اگر این باتن را فشار دهم باید تغییر اسم اعمال شود. حالا من این کد تغییر را که مربوط به باتن ( ذخیره) می باشد را بطور کامل می خواهم .
اگر بی ادبی نشود همین برنامه با دیتابیس اکسس را در اینجا قرار دهید .


با سپاس فراوان

zarrin_306
سه شنبه 05 دی 1385, 11:31 صبح
من اینو جواب دادم
به لینک زیر مرا جعه کن ببین حل میشه
اگر نه اساسی یه پروژعه برات راه بندازم ( ولی انشاء الله برای حدود یک ماه دیگه ) چرا که عازم سفری هستیم
انشاءاالله که کارت راه بیوفته در غیر این صورت 100% چشم
منتظر بمان
http://barnamenevis.org/forum/showthread.php?t=58029