PDA

View Full Version : حدف اطلاعات از دیتا گرید ویو



IMANAZADI
پنج شنبه 22 مهر 1389, 14:30 عصر
با سلام خدمت دوستان عزیز
یک مشکل خیلی ساده دارم که هر کاری میکنم نمیتونم حلش کنم
دارم رو یه برنامه با بانک اطلاعاتی کار میکنم
میخوام وقتی کاربر روی یکی از ساول های دیتا گرید ویو با کی بورد (اینو مد نظر داشته باشید کی بورد) با کلید های جهتی بالا یا پایین میکنه بعد کلید delete رو میزنه اون سلولی که با کی بورد انتخاب شده از بانک حذف بشه طریقه حذف و مابقی رو میدونم فقط چطوری مقدار سلولی را که کی بورد بالا یا پایین میکنه رو بدست بیارم ؟


این اطلاعاتی که به دیتا گرید ویو میره



ds.Clear ();

da.SelectCommand.CommandText = "select * from xxxx order by ID";
da.Fill (ds , "h");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "h";



این کلید delete




OleDbCommand cmd=new OleDbCommand ("delete from xxxx where ID=@p1" , cnn);

cmd.Parameters.Clear ();

cmd.Parameters.AddWithValue ("@p1" , txt); //سراسری تعریف شده txt //

cnn.Open ();
cmd.ExecuteNonQuery ();
cnn.Close ();

ds.Clear ();

da.SelectCommand.CommandText = "select * from Main order by ID";
da.Fill (ds , "f");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "f";


فقط میمونه تو کدوم رویداد دیتا گرید ویو مقداری سلولی را که کی بورد پیمایش میکنه پیدا کنم
اینو تست میکنم درست جواب میده ولی وقتی delete رو میزنم خطا رخ میده

اینم بگم همین کد در رویداد cell click درست عمل میکنه ولی باید حتما با موس سلول انتخاب بشه



private void dataGridView1_CurrentCellChanged (object sender , EventArgs e)
{

txt=dataGridView1.CurrentRow.Cells ["ID"].Value.ToString ();

}



با تشکر از دوستان عزیز

IMANAZADI
پنج شنبه 22 مهر 1389, 14:38 عصر
سوال بعدی اینه که چطوری میتونم رنگ ستون یا سطر یک سلول خاص در دیتا گرید ویو متمایز کرد .
در صورتیکه دیتا گرید ویو با دیتا ست پر توسط کد نویس پر میشه ؟؟

mmd2009
پنج شنبه 22 مهر 1389, 17:49 عصر
با سلام

شما باید از رویداد CellEnter برای این کار استفاده بکنید



private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
this.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
}