PDA

View Full Version : مبتدی: ویرایش و حذف در دیتا گرید ویو: فوری



nimamohammadi
شنبه 08 اسفند 1388, 22:22 عصر
سلام دوستان.من قبل از پرسیدن سوالمdatagrid رو search کردم و تمام سوال جواب ها رو خوندم و علی رغم تکراری بودن اکثر سوال ها و جواب ها, جوابمو نگرفتم.
من می خوام وقتی محتویات یه table در datagrid نمایش داده می شه , همون جا تو datagrid تغیییرات رو در فیلدها اعمال کنم و با زدن یک دکمه ی ذخیره این تغییرات در جدولم در database , ذخیره بشه.و برام مهمه که این تغییرات در خود datagrid صورت بگیره و نه از طریق چند تا textbox .ممنون می شم راهنماییم کنید.با کد البته.
متشکرم.
در مورد حذف هم همین طور وقتی که با موس یک سطر از دیتا گرید ویو رو انتخاب می کنم و دکمه حذف رو می زنم حذف بشه
لطفا کمممممممممممممممممممممممم ممممممممممممممممممممممممم مممممممک.

slashslash2009
شنبه 08 اسفند 1388, 22:53 عصر
برای حذف کردن داخل خود گرید ویو میتونید یک دکمه درست کنید یعنی در قسمت edit column و روی دکمه add کلیک کرده بعدش یک کولومن از جنس باتون بسازید و خاصیت header text=حذف و text=حذف و usecolumntextforbuttonvalue=true کنید بعدش این کدو در رویداد cellclick مربوط به گریدویو بزارید

if (dataGridView1.CurrentCell.Value.ToString().Trim() == "حذف")
{
dataGridView1.ReadOnly = false;
connect consql = new connect();
consql.doCommand("Delete from tblname where name='" + dataGridView1.CurrentRow.Cells[1].Value + "'");
MessageBox.Show("یک رکورد پاک شد");
}اگرم میخوای که دکمه حذف خارج از گریدویو باشه یعنی یک جای فرم کافیه این کدو در رویداد باتون مربوطه بنویسی

connect consql = new connect();
consql.doCommand("Delete from tblname where name='" + dataGridView1.CurrentRow.Cells[1].Value + "'");
عدد یک در این کد و کد قبیلی شماره ستون name هست

asefy2008
شنبه 08 اسفند 1388, 23:26 عصر
سلام چون زمان زیادی از کار کردنم با دیتابیس می گذره ممکن اشتباه کنم دوستان لطفا تصحیح کنند:
فکر کنم نتونی بدون استفاده از textbox درج رو انجام بدی.
برای این که تو دیتاگرید بتونی تغیییرات رو در فیلدها اعمال کنی readonly ستون ها رو trueکن.
برای ذخیره کردن کد زیر رو در رویداد کلیک باتن مورد نظرت بنویس :


this.Validate();
this.TableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.DataSet);

البته اگر بخوای با کد SQL کارت رو انجام بدی از لینکی که در انتها قرار میدم استفاده کن(این فکر کنم برای حالت ویزاردی باشه.)
و اما حذف :


SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Delete From Table1 Where ID=@ID;", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", DataGridView.CurrentRow.Cells[0].Value.ToString());
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
ObjConnection.Close();
Fill();


public void Fill()
{
SqlConnection ObjConnection = new SqlConnection("Data Source=.;Initial Catalog=salesroom_of_mobile;Integrated Security=True");
SqlDataAdapter ObjDataAdapter = new SqlDataAdapter("Select * From customerTable", ObjConnection);
DataSet ObjDataSet = new DataSet();
ObjConnection.Open();
ObjDataAdapter.Fill(ObjDataSet, "customerTable");
ObjConnection.Close();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = ObjDataSet;
dataGridView1.DataMember = "customerTable";
ObjDataAdapter = null;
ObjConnection = null;
}
http://barnamenevis.org/forum/showthread.php?t=133060