PDA

View Full Version : آپدیت اطلاعات ریختن در DataGridView



reza11_2005
چهارشنبه 12 اردیبهشت 1397, 15:54 عصر
با سلام
من با راهنمایی در این قسمت
http://barnamenevis.org/showthread.php?547769-%D8%B1%DB%8C%D8%AE%D8%AA%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D9%81%D8%B1%D9%85-%D8%AF%D9%88%D9%85-%D8%AF%D8%B1-DataGridView-%D9%81%D8%B1%D9%85-%D8%A7%D9%88%D9%84

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

اگر دوستان من راهنمایی کنید یک دنیا ممنون دوستان می شوم
تشکر

reza11_2005
جمعه 14 اردیبهشت 1397, 10:46 صبح
باز هم سلام من فقط برام سوال چطوری باید به فرم دوم بفهمونم که باید کدوم ردیف دیتا گرید ویرایش کنه یا حدف اخه از دیتابیس استفاهد نمی کنم
ممنون می شوم دوستان واجب خیلی پروژه دانشگاه هست

Mahmoud Zaad
جمعه 14 اردیبهشت 1397, 11:02 صبح
سلام
رکوردهای شما یک کلید یا به اصطلاح id یونیک دارند یا نه؟ اگر دارند که از همون استفاده کنید اگر ندارن می تونید یه id بسازید یا اگر برنامه تحت شبکه نیست و همه اطلاعات در همون گرید نمایش داده میشه و صفحه بندی نشده می تونید از شماره ردیف یا RowIndex رکورد استفاده کنید. مثلا اگر روی ردیف دوم کلیک شد، اندیس این ردیف 1 هست پس شما در موقع آپدیت یک شرط میذارید که فقط ردیفی که اندیسش 1 هست رو آپدیت کن.

reza11_2005
جمعه 14 اردیبهشت 1397, 11:09 صبح
میشه با یک مثال ساده برام توضیح بدهید
مثلا مثال این صفحه
http://barnamenevis.org/showthread.php?547769-%D8%B1%DB%8C%D8%AE%D8%AA%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D9%81%D8%B1%D9%85-%D8%AF%D9%88%D9%85-%D8%AF%D8%B1-DataGridView-%D9%81%D8%B1%D9%85-%D8%A7%D9%88%D9%84
تشکر

Mahmoud Zaad
جمعه 14 اردیبهشت 1397, 11:38 صبح
سلام مثال رو به شکل ضمیمه تغییر دادم. با دابل کلیک روی هر ردیف، اطلاعات برای ویرایش به فرم دوم منتقل میشه و بعد از تغییر و زدن دکمه، اطلاعات در جدول ویرایش میشه.
148102

----------------ویرایش

البته چون عجله ای بود دقت نکردم، وقت از اندیس استفاده می کنید نیازی به حلقه هم نیست. کدهای مربوط به حلقه رو کامنت کنید.
if (frm2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//foreach (DataGridViewRow row in dataGridView1.Rows)
//{
// if (row.Index == e.RowIndex)
// {
dataGridView1.Rows[e.RowIndex].Cells[FirstName.Name].Value = frm2.FirstName;
dataGridView1.Rows[e.RowIndex].Cells[LastName.Name].Value = frm2.LastName;
// }
//}
}

reza11_2005
جمعه 14 اردیبهشت 1397, 17:15 عصر
سلام و ممنون شما هستم
فقط یک سوال دیگه دارم
برای حذف من می خواهم اول داخل دیتا گرید حذف بشه بعدا ردیف ها داخل یک تابع ذخیره بشه بعدا از طریف حلقه حذف کامل از دیتا بیس بشه
رهای هست برای اینکار؟

Mahmoud Zaad
جمعه 14 اردیبهشت 1397, 18:03 عصر
نمیدونم دقیقاً میخواهید چکار کنید. چون قبلاً گفتید از دیتابیس استفاده نمیکنید ولی الان میگید حذف از دیتابیس.
حذف از گرید که به صورت dataGridView1.Rows.RemoveAt(index); هست ولی برای بقیه اش اگه دقیقاً توضیح بدید چکار می خواهید بکنید بهتر میشه راهنمایی کرد.

reza11_2005
جمعه 14 اردیبهشت 1397, 19:04 عصر
سلام و تشکر
ببنید من اطلاعات از دیتا بیس می خوانم و داخل دیتا گرید نمایش می دهم وبعد از تغیرات اون ذخیر می کنم داخل دیتا بیس
می خواهم اول تغییرات داخل دیتا گرید ثبت بشه بعدا روی دکمه ذخیر که زدام اون کار های که روی دیتا گرید انجام دادم داخل دیتا بیس هم انجام بشه

Mahmoud Zaad
شنبه 15 اردیبهشت 1397, 08:24 صبح
این روش شما زمانی جواب میده که شما قبل از ثبت در دیتابیس، همه ی رکوردهای موجود در دیتابیس رو حذف کنید و مجدداً ثبت کنید. یعنی طبق گفته ی شما روال به این صورت میشه: اطلاعات دیتابیس رو در گرید نمایش بدید بعد تغییرات رو در گرید اعمال کنید بعد رکوردهای داخل دیتابیس رو حذف کنید و بعد اطلاعات داخل گرید رو در دیتابیس ثبت کنید.

reza11_2005
جمعه 21 اردیبهشت 1397, 10:23 صبح
این روش شما زمانی جواب میده که شما قبل از ثبت در دیتابیس، همه ی رکوردهای موجود در دیتابیس رو حذف کنید و مجدداً ثبت کنید. یعنی طبق گفته ی شما روال به این صورت میشه: اطلاعات دیتابیس رو در گرید نمایش بدید بعد تغییرات رو در گرید اعمال کنید بعد رکوردهای داخل دیتابیس رو حذف کنید و بعد اطلاعات داخل گرید رو در دیتابیس ثبت کنید.

سلام دقیقا حالا میشه اگر امکان داره برای این موضوع مثالی بزنید ممنون شما می شوم

danialafshari
یک شنبه 23 اردیبهشت 1397, 01:40 صبح
با سلام
هر تاپیک مخصوص یک سوال هست قوانین رو مطالعه کنید
در ضمن شما برنامه نویس هستید اینجا دوستان راه حل میدن و شما باید کدش رو بنویسید
به نظر من کار درستی نیست که اطلاعات رو پاک کنید و سپس دوباره ذخیره کنید اول اینکه این بهینه نیست و ممکنه اطلاعات زیاد باشه هر چند که برنامتون رو توضیح ندادید دوم اینکه ID هایی که به حذف شده ها تخصیص داده شده از بین میره
بهتره یک فرم قرار بدید و از دیتاگرید UnBounded استفاده کنید که توی تاپیک زیر راهشو گفتم
http://barnamenevis.org/showthread.php?548485-%D9%84%D8%B7%D9%81%D8%A7-%DA%A9%D9%85%DA%A9-%DA%A9%D9%86%DB%8C%D8%AF-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%DB%8C%D8%AA%D8%A7-%DA%AF%D8%B1%DB%8C%D8%AF-%D8%B1%D9%88-%D8%AF%D8%B1-%D8%AD%D8%A7%D9%84%D8%AA-%D9%88%D8%A7%D8%B1%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AE%D8%A7%D9%84%DB%8C-%D9%86%DA%AF%D9%87-%D8%AF%D8%A7%D8%B1%DB%8C%D9%85
سپس برای ویرایش و حذف میتونید همون رو باز کنید و رکورد رو ویرایش یا حذف کنید و اگر جداولتون بهینه باشه کارتون راحت میشه
موفق باشید