PDA

View Full Version : سوال: ثبت DataSet در DataBase !!!



alisalari1981
چهارشنبه 11 بهمن 1391, 19:51 عصر
سلام دوستان گرامی
با استفاده از DataAdapter و Dataset یک سری رکورد را میخونم
یک فیلد رو توی یک ListBox میریزم و چندتا TextBox رو هم ست میکنم روی فیلدای دیگه
وقتی روی آیتمهای ListBox حرکت میکنم توی TextBoxها مقادیر فیلدای رکورد مربوطه نمایش داده میشه
بعد کاربر مقدار یکی از TextBox ها رو تغییر میده
نهایتا" روی یک Button برای ذخیره شدن تغییرات کلیک میکنه که زیر این Button کد DataAdapter.Update نوشته شده .
مشکل اینجاست که وقتی چیزی توی TextBox ها تغییر داده میشه بعد از اون اگه DataAdapter.Update اجرا بشه چیزی ثبت نمیشه ، اما اگه بعد از تغییرات توی ListBox یک رکورد بالا یا پایین بریم و بعد Update بزنیم تغییرات داخل DataBase ذخیره میشه !
احتمالا" توی Button قبل از Update باید کد دیگری هم بنویسم که ازش خبر ندارم !!!
اون ! همون اون چیه ؟ شما اونو به من نشان بده اول
متشکرم

alisalari1981
چهارشنبه 11 بهمن 1391, 23:41 عصر
عجبا ! نبود ؟ منتظرم اساتید ...

khokhan
پنج شنبه 12 بهمن 1391, 00:05 صبح
عجبا ! نبود ؟ منتظرم اساتید ...

کدش رو بذار

alisalari1981
پنج شنبه 12 بهمن 1391, 15:15 عصر
کدش رو بذار

کد خاصی نداره ، عرض شود که یک ListBox هست که پراپرتی DataSource برابر PeymankaranDataSet ( اسم دیتا ستم ) هست و پراپرتی DisplayMember برابر Peymankaran.Name ( جدول و فیلد نام )
چندتا TextBox هم دارم که توی پراپرتی DataBinding قسمت Text برابر PeymankaranDataSet - Peymankaran.DocNo شده ( البته طبعا" برای هر TextBox اسم فیلد فرق میکنه )
حالا وقتی اجرا میشه روی ListBox که حرکت کنم بقیه ی فیلدهای اون پیمانکار توی TextBoxها نمایش داده میشه
وقتی یک TextBox تغییر داده میشه تا وقتی بعد از تغییر توی ListBox رکورد رو تغییر ندم DataSet تغییر روش اعمال نمیشه ، وقتی اعمال شد بعدش میتونم Button رو بزنم و تغییرات روی DataBase ذخیره بشه
توی Button هم این کد هست :
DataAdapter1.Update(PeymankaranDataSet.Peymankaran );

khokhan
پنج شنبه 12 بهمن 1391, 15:33 عصر
پس از اتصال و واکشی اتصال رو کلوز کردی ؟

alisalari1981
پنج شنبه 12 بهمن 1391, 15:39 عصر
پس از اتصال و واکشی اتصال رو کلوز کردی ؟
نه ! من از DataAdapter استفاده میکنم ، مگه این خودش Disconected نیست ؟
من همه چیزو توی پراپرتی ها ست کردم ، با یک DaraAdapter.Fill واکشی میکنم با DataAdapter.Update هم ذخیره میکنه ، باید Close کنم ؟ کجا ؟

naghshineh m&h
پنج شنبه 12 بهمن 1391, 16:34 عصر
سلام دوست عزیز من یک همچین مشکلی را داشتم در نتیجه متوجه شدم در هنگامی که می خواهی کوئری بگیری باید حتما توی کوئری کلید جدولت را هم جزو کوئری قرار بدی ولی نمی خواد بایندش کنی با چیزی همین که باشه کافیه چون موقع آپدیت حتما باید کلید وجود داشته باشه

alisalari1981
پنج شنبه 12 بهمن 1391, 16:37 عصر
سلام دوست عزیز من یک همچین مشکلی را داشتم در نتیجه متوجه شدم در هنگامی که می خواهی کوئری بگیری باید حتما توی کوئری کلید جدولت را هم جزو کوئری قرار بدی ولی نمی خواد بایندش کنی با چیزی همین که باشه کافیه چون موقع آپدیت حتما باید کلید وجود داشته باشه

ممنونم ولی من هیچ کوئری ننوشتم ، کل کد همین بود که نوشتم ...

alisalari1981
پنج شنبه 12 بهمن 1391, 17:54 عصر
کسی نظر دیگه ای نداره ؟

alisalari1981
پنج شنبه 12 بهمن 1391, 19:59 عصر
آقا کسی جواب مارو نمیده ، فکر کنم بهتره یه جور ساده و کوتاهتر سوال کنم :
برای تغییر رکورد جاری در Dataset چه کدی باید نوشت ؟ یعنی چجوری نشانگر رو به رکورد قبلی یا بعدی ببرم ؟
ممنونم .

khokhan
پنج شنبه 12 بهمن 1391, 20:41 عصر
آقا کسی جواب مارو نمیده ، فکر کنم بهتره یه جور ساده و کوتاهتر سوال کنم :
برای تغییر رکورد جاری در Dataset چه کدی باید نوشت ؟ یعنی چجوری نشانگر رو به رکورد قبلی یا بعدی ببرم ؟
ممنونم .


با سلام مجدد

اخوی :

می دونی اشکال کارت کجاست ؟ البته بدت نیاد :لبخند:

به جای اینکه این همه توضیح وطول وتفسیر بدی

اون قسمت از سورست رو که ایراد داره رو بگذار وبعدبخواه تا راهنماییت کنند



ارادت داریم

alisalari1981
پنج شنبه 12 بهمن 1391, 21:05 عصر
با سلام مجدد

اخوی :

می دونی اشکال کارت کجاست ؟ البته بدت نیاد :لبخند:

به جای اینکه این همه توضیح وطول وتفسیر بدی

اون قسمت از سورست رو که ایراد داره رو بگذار وبعدبخواه تا راهنماییت کنند



ارادت داریم

من مخلص شمام آقا
به خدا همینی بود که گفتم ، نوشتم دیگه ، ListBoxها و TextBoxها رو که از قسمت پراپرتیزها بایند کردم ، پشت Button هم که فقط یه Update هست که اونم بالا نوشتم
میگم بعد از تغییر متن Textbox یک بار باید توی Listbox رکورد جاری رو جابجا کنم تا تغییر روی Dataset اعمال بشه ، بعد از اون هم Button مربوط به Update به درستی تغییر رو روی DataBase ذخیره میکنه
آقا من دیگه چی بگم؟ :لبخندساده:
شاید اینقدر خواهش تمنا کردم که اون پست که کامل توضیح دادم کلی عقب افتاده ، بری ببینی هست به خدا

alisalari1981
پنج شنبه 12 بهمن 1391, 21:58 عصر
یافتم ، خفه شدم و یافتم
پیش از این برای ListBox و TextBoxها در پنجره ی Peroperties گزینه ی DataSource رو روی Dataset ست کرده بودم , کار میکرد ، ثبت هم میکرد ، فقط قبل از ثبت باید یک رکورد روی ListBox به جلو میرفتم ، برای اینکه اینکارو بتونم توی کد بکنم بهتره Dataset را روی BindingSource ست کنم ، و بعد پشت Save Button قبل از DataAdapter.Update بنویسم BindingSource.movenext();
فاااااااااااتحه
با تشکر از همه دوستان

khokhan
پنج شنبه 12 بهمن 1391, 22:10 عصر
به نظر من باید دستور باتن رو اینطوری بنویسی


foreach (DataTable theTable in dataSetChanged.Tables)
{

DataAdapter1.Update(PeymankaranDataSetChanged.Peym ankaran );

}