PDA

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



sasan_22
سه شنبه 19 اردیبهشت 1391, 19:32 عصر
سلام من می خوام کاربر زمانی که رکوردی را از دیتاگرید انتخاب کرد و دکمه حذف را فشار داد هم از دیتاگرید هم از بانک رکورد مورد نظر حذف شود . در ضمن این هم در نظر گرفتم که ممکن است چند رکورد انتخاب شده باشد
ممنون از راهنماییتون

sinaone1
سه شنبه 19 اردیبهشت 1391, 20:45 عصر
دوست عزیز اگه از linq استفاده نمی کنی خیلی ساده با استفاده از خصوصیت SelectedItems مربوط به Datagrid آیدی های سطرهارو میگیری و همزمان با استفاده از اون هم دستور delete رو برای sql می نویسی و هم برای datagrid دستور حذف اون Row رو مینویسی

omidamiry
سه شنبه 19 اردیبهشت 1391, 21:32 عصر
از خاصیت راو سلکتت کلیدتو بخون و از بانک حذف کن و با همون راو سلکتت از دیتا گرید ریمو کن تمام

hosseinenayati_2009
یک شنبه 24 اردیبهشت 1391, 03:21 صبح
سلام
شما زمانی که سطری را انتخاب می کنید فلید کلید اون را داخل متغییری بریزید و براساس اون متغییر اطلاعات را از بانک حذف کنید دستور بدست آوردن مقدار یک سطر انتخاب شده اینه

string n;

n = dataGridView1.CurrentRow.Cells[0].Value.ToString();

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = login.con;
cmd.CommandText = "delete from kambod where namek= '" + n + "'";
cmd.ExecuteNonQuery();



DataSet ds = new DataSet();
OleDbDataAdapter da;
ds.Clear();
da = new OleDbDataAdapter("select * from kambod ", login.con);
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

headshoter
یک شنبه 24 اردیبهشت 1391, 17:27 عصر
این کد هم شاید بتونه کمکت کنه !! اگه جایی توضیح خواستی بگو !!



SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
cmd.CommandText = "DELETE from StudentsInfo WHERE ID=@id";
cmd.Connection = cnn;

if (cnn.State == ConnectionState.Closed)
cnn.Open();

foreach (DataGridViewRow dr in dgv.Rows)
{
if (dr.Selected == true && dr.Cells[0].Value != null)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@id", dr.Cells[0].Value);
cmd.ExecuteNonQuery();
}
}

cmd.CommandText = "SELECT * From StudentsInfo";
da.SelectCommand = cmd;
dt.Clear();
da.Fill(dt);
dgv.DataSource = dt;

cnn.Close();