PDA

View Full Version : آپدیت بانک اطلاعاتی



taheri-ali
سه شنبه 25 مهر 1385, 03:28 صبح
دوستان من چند وقت پیش سئوالی مطرح کردم و با کمک شما داشتیم ب نتیجه می رسیدیم ولی متاسفانه به جواب نرسید سئوال من این است که :
چطور می شه دیتا بیس رو آپدیت کرد؟ و کد اون چیه؟ تو کتابهایی که من خوندم ابن کذ رو پیدا کردمme.dataadapter.update(me.dataset.tablename .getchange)ولی متاسفانه جواب نمی ده
با کمک دوستان به یه چیزایی رسیدیم ولی کامل نیست یه نسخه از کدها و دیتا بیس مربوطه رو می ذارم اگه کسی کمک کنه ممنون می شم
ضمناً من از .netنسخه 2003 و sql 2000استفاده می کنم

rezaei manesh
سه شنبه 25 مهر 1385, 08:33 صبح
سلام
من از روش شما استفاده نمی کنم من این طوری عمل می کنم
اول اطلاعات رو می ریزم تویه یه datarowبعد اونو به جدول اضافه می کنم یا رکورد جدول رو پیدا می کنم و اونو تو حالت ویرایش قرار میدم و ویراش می کنم

Mohammad .net
سه شنبه 25 مهر 1385, 22:47 عصر
با سلام

تا وقتی دوستمون براتون یک مثال بزنند من چند مورد رو خدمت شما عرض کنم
1- cn و myconnection در این مدل برقراری ارتباط که شما کارکردید هیچ کاربردی ندارند و عملا در فرم شما کاری مفیدی انجام نمی دهند
2- وقتی از DataAdapter استفاده می کنید نیازی به Open و close کردن Connection نیست
3 - DataAdapter شما که با ویزاد ایجاد کردید از connection ی که روی فرم ایجاد شده استفاده می کند
مشکل اصلی :

dataadapter ی که ساخته اید اصلاً UpdateCommand ندارد !!

احتمالاً در هنگام ساختن در ویزارد در Advanced option تیک گزینه اول را برداشته اید

Data Adapter را دوباره بسازید

Maryam_y_m
چهارشنبه 26 مهر 1385, 11:42 صبح
نکته جالبی که من به آن برخورد کردم این است: وقتی هر تغییری روی dataset میدهید (Add، Edit ،Del) پس از آن تا هنگامیکه بانک را update نکرده اید هیچگاه dataset را acceptchanges نکنید چون با این کار دیگر تغییرات روی بانک اعمال نمیشود . پس روند Update به این صورت است:

1) اعمال تغییر دلخواه در dataset (بدون AcceptChanges)
2)استفاده از دستور زیر :


ADO_TblMySample.update(dataset,"Tbl_MySample")
3) acceptchanges کردن dataset

taheri-ali
چهارشنبه 26 مهر 1385, 22:11 عصر
دوست من آقای mohammad.net منظور شما را نمی فهمم
من دیتا آداپیر را با ویزارد ساخته ام و تیک update command به صورت پیش فرض فعال است بعید می دونم مشکل این باشه

taheri-ali
چهارشنبه 26 مهر 1385, 22:27 عصر
خانم maryam_y_m میشه بگید منظورتون از ADO_TblMySampleچیه؟
میشه یه sample برام بفرستید؟

Mohammad .net
چهارشنبه 26 مهر 1385, 22:39 عصر
این برنامه خودتون . براتون اصلاح کردمش

odiseh
پنج شنبه 27 مهر 1385, 10:20 صبح
سلام بچه ها
من زیاد از این روش Dataset برای update کردن اطلاعات راضی نیستم به نظرم با استفاده از
این روش dataset و dataadaptor ، حتما dirty read خواهیم داشت. به نظر من این روش SQLCommand خیلی روان و قشنگتر هستش. اینطور نیست؟

Mohammad .net
پنج شنبه 27 مهر 1385, 20:35 عصر
هر روش و ابزاری کاربرد ، مزایا و معایب خودش رو داره.
نسبت به مسئله راه حل مناسب رو انتخاب می کنیم

'هیچ وقت برای بیل زدن باغچه حیاط از بیل مکانیکی استفاده نکنید' :چشمک:

taheri-ali
یک شنبه 30 مهر 1385, 04:59 صبح
محمد آقا ممنون از راهنمایی شما من فهمیدم که اشکال کارم از کجاست اما یه سئوال
اون کدهایی که در قسمتcommandtextمربوط به updatecommand در da2 نوشتید رو با ویزارد تهیه کردید یا باید همه اونو نوشت؟

Mohammad .net
یک شنبه 30 مهر 1385, 20:59 عصر
اون کد رو ویزارد نسبت به دستور Select ی که شما بهش میدید تولید می کند

البته جدول شما حتما باید Key داشته باشد.

ولی بسته به نیاز می تونید کد را عوض کنید یا خودتون همش رو بنویسید

یا اصلا Adapter را با ویزاد نسازید و دستی کد بنویسید

یا از یک کلاسی استفاده کنید که Select رو می گیره و Insert , update , Delete تولید میکند که اسمش خاطرم نیست.

taheri-ali
دوشنبه 01 آبان 1385, 05:15 صبح
میشه راهنمایی کنید که من اون دستور select رو کجا باید وارد کنم تا ویزارد کد رو تولید کنه؟

Mohammad .net
دوشنبه 01 آبان 1385, 10:56 صبح
اونجا که یه کادر داره و بالاش نوشته
what data should the data adapter load into the dataset
البته همون پایین از Query Builder هم میتونی استفاده کنی

Maryam_y_m
دوشنبه 01 آبان 1385, 13:29 عصر
خانم maryam_y_m میشه بگید منظورتون از ADO_TblMySampleچیه؟
میشه یه sample برام بفرستید؟
ADO_TblMySample ، نام SqlDataAdapter شما است که مختص table شماست. متاسفانه مثال کوچک آماده ندارم. در پروژه از آن استفاده کردم.

taheri-ali
شنبه 06 آبان 1385, 00:50 صبح
دوستان من به نتیجه رسیدم ممنون از راهنماییهای همه عزیزان