PDA

View Full Version : Update کردن GridView



jaza_sa
شنبه 24 فروردین 1387, 17:22 عصر
سلام
چطور باید در یک برنامه ای که داری معماری سه لایه است یک GridView رو Update کرد

راستش ،
مشکل اصلی من اونجایی که هر چی مقادیر رو در سطح فرم تغییر میدیم ، این مقادیر تغییر نمی کنند
یعنی اصلا مقادیر جدید برای من ارسال نمیشه تا اونارو برای دیتابیس بفرستم.

ممنون میشم اگه کسی راه حلش رو برام بگم !!!

twelve
شنبه 24 فروردین 1387, 18:35 عصر
مشکل اصلی من اونجایی که هر چی مقادیر رو در سطح فرم تغییر میدیم ، این مقادیر تغییر نمی کنند
یعنی اصلا مقادیر جدید برای من ارسال نمیشه تا اونارو برای دیتابیس بفرستم.

بیشتر توضیح میدید؟ مثلا این مقادیر رو چطور تغییر میدی ؟ دستورات update رو کجا و به چه صورت نوشتی ؟ Gridview رو چطور پر میکنی؟

jaza_sa
شنبه 24 فروردین 1387, 19:19 عصر
بیشتر توضیح میدید؟ مثلا این مقادیر رو چطور تغییر میدی ؟ دستورات update رو کجا و به چه صورت نوشتی ؟ Gridview رو چطور پر میکنی؟

برطبق معماری سه لایه تمامی این کارها انجام میشن
در رویداد Page_Load فرم ، GridView پر میشه ( با ساخت نمونه از Logic Layer و صدا زدن متدی با نام SelectAll ) بنا بر این تمامی اطلاعات در GridView نمایش داده میشن
برای Update کردن یک مقدار نیز به همین روش عمل میکنیم ، یعنی اول یک نمونه از کلاس Logic Layer میسازیم و متد Edit را صدا میزنیم و پارامتر های ID, Title رو به این تابع میفرستیم
به طور مثال :


int id;
string title;

...

Logic_Layer L2 = new Logic_Layer();
L2.Edit(id, title);
و اگر بخوایید بیشتر توضیح بدم باید Logic Layer رو بگم ولی به طور خلاصه مثلا در متد Edit دستوری شبیه به این نوشته شده


public void Edit(int id, string title)
{
db.Connect(); // ارتباط برقرار کردن با دیتابیس
string str = "update Category set Title = '{0}' where CategoryID = " + id;
str = string.Format(str, title);
db.DoCommand(str); // انجام دستور در دیتابیس
db.Disconnect(); // قطع ارتباط با دیتابیس
}

twelve
شنبه 24 فروردین 1387, 20:09 عصر
ظاهرا منظورم رو متوجه نشدید منظورم از نحوه پر شدن گریدویو منبع داده ی اون بود .(مثلا دیتاست و ...) احتمالا این متد SelectAll شما یک دیتاست رو بر میگردونه.
یک روش معمول و ساده برای ویرایش مقادیر این کنترل اینه که یک ستون button column به اون اضافه می کنند و با نسبت دادن مقدار موجود در سطر مورد نظر به یک textbox اون رو با دستورات update نظیر همین که نوشتی ویرایش میکنند.
آیا شما از چنین روشی استفاده میکنید؟ کد ویرایش گریدویو واقع در رویداد Gridview.UpdateCommand رو اینجا بذارید.