PDA

View Full Version : آپدیت نشدن data grid view پس از انجام عمل update , delete



yanni2
جمعه 25 مرداد 1392, 16:25 عصر
عزیزی که تاپیک قبلی منو پاک کردی من قبلا سرچ کردم اما جوابمو نگرفتم خواهشا پست قبلی منو باز کن من سر پروژه هستم
دوستان عزیز یکی بگه چجور میشه پس از انجام عمل حذف یا ویرایش اطلاعات داخل datagrid view اپدیت
بشه
من یک فرم دارم که داخل یک دکمه و یک دیتا گرید ویو وجود دارد

کمک کنید خواهشا

harash
جمعه 25 مرداد 1392, 16:29 عصر
بستگی به کدهایی که نوشتی داره
مثلا من یه sub نوشتم که بعد از هر عملیاتی (حذف، اصلاح، اضافه ...) اون رو call میکنم

Faraz7
جمعه 25 مرداد 1392, 16:33 عصر
باید دوباره dataset رو به وسیله adapter پر کنید(متد Fill)

mousa1992
جمعه 25 مرداد 1392, 17:30 عصر
بعد از اپدیت و حذف و یا اضافه کردن رکورد و انجام هر تغییری دستور پر کردن گرید رو که توی FormLoad نوشتی تکرار کن

jd.mn98
جمعه 25 مرداد 1392, 17:53 عصر
دوستان درست می گن شما باید شیئی که از DataTable گرفتید رو توسط SqlDataAdapter پر کنید اما باید قبلش شیء DataTable رو Clear کنید به این دستور توجه کنید

SqlDataAdapter dt=new SqlDataAdapter();
DataTable dt=new DataTable();
private void fill_dgv()
{
dt.Clear();
da=new SqlDataAdapter("دستور اس کیو ال",con)
da.fill(dt);
datagridview1.DataSource=dt;
}

توجه داشته باشید که con در دستور بالا همون شیء SqlConnection میباشد.
اگر دکمه ای دارید مثلا ویرایش یا حذف بعد از اینکه تمام دستوراتتون رو توی اون دکمه نوشتید حتما این دستورات بالا رو بعدش قرار بدید که من متد ساختم کافیه فقط متد رو قرار دهید.

yanni2
جمعه 25 مرداد 1392, 18:17 عصر
دوستان من با این دستور پر میکنم دیتا گرید ویو
my_da = new SqlDataAdapter("select name,lname,codreshte,codostad from student", conn);
DataTableMapping Tblmap3 = new DataTableMapping();
DataColumnMapping colmap3 = new DataColumnMapping();

Tblmap = my_da.TableMappings.Add("Table", "studentha");
colmap = Tblmap.ColumnMappings.Add("name", "نام");
colmap = Tblmap.ColumnMappings.Add("lname", "نام خانوادگی");
colmap = Tblmap.ColumnMappings.Add("codreshte", "کد رشته");
colmap = Tblmap.ColumnMappings.Add("codostad", "کد استاد");
my_da.Fill(ds);
dataGridView3.DataSource = ds;
dataGridView3.DataMember = "studentha";

با این دستور هم عملیات انجام میدم
if (maskedTextBox1.Text == "")
{
MessageBox.Show("لطفا کد رشته را وارد کنید",
"هشدار",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
else
{
SqlCommand cmd5 = new SqlCommand("delete from student where codreshte='" + maskedTextBox1.Text + "'", conn);


try
{
if (conn.State != System.Data.ConnectionState.Open)
conn.Open();
int i = cmd5.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات حذف با موفقیت انجام شد", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBoxX1.Text = "";
textBoxX2.Text = "";

}
else
MessageBox.Show("چنین کدی وجود ندارد");
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}

}
}

private void buttonX4_Click(object sender, EventArgs e)
{
if (maskedTextBox1.Text == "")
{
MessageBox.Show("لطفا کد استاد را وارد کنید",
"هشدار",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
else
{
SqlCommand cmd5 = new SqlCommand("delete from student where codostad='" + maskedTextBox1.Text + "'", conn);


try
{
if (conn.State != System.Data.ConnectionState.Open)
conn.Open();
int i = cmd5.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات حذف با موفقیت انجام شد", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBoxX1.Text = "";
textBoxX2.Text = "";

}
else
MessageBox.Show("چنین کدی وجود ندارد");
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}

}

حالا بگید چجور اپدیت کنم یا کدهایی که شما دوستان عزیز گفتید رو کجا قرار بدم ؟

ممنون

hamid_0341
جمعه 25 مرداد 1392, 19:35 عصر
اول کدتو توی یک وید بزار
private void Loadgridview()
{

my_da = new SqlDataAdapter("select name,lname,codreshte,codostad from student", conn);

DataTableMapping Tblmap3 = new DataTableMapping();

DataColumnMapping colmap3 = new DataColumnMapping();



Tblmap = my_da.TableMappings.Add("Table", "studentha");

colmap = Tblmap.ColumnMappings.Add("name", "نام");

colmap = Tblmap.ColumnMappings.Add("lname", "نام خانوادگی");

colmap = Tblmap.ColumnMappings.Add("codreshte", "کد رشته");

colmap = Tblmap.ColumnMappings.Add("codostad", "کد استاد");

my_da.Fill(ds);

dataGridView3.DataSource = ds;

dataGridView3.DataMember = "studentha";
}

حالا هر جا که بهش نیاز داری فقط کافیه که کالش کنی توی فرم لود
من اینجوری گزاشتم
private void Form1_Load(object sender, EventArgs e)
{
Loadgridview();
}
اینم مثال
private void buttonX4_Click(object sender, EventArgs e)
{
if (maskedTextBox1.Text == "")
{
MessageBox.Show("لطفا کد استاد را وارد کنید",
"هشدار",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
else
{
SqlCommand cmd5 = new SqlCommand("delete from student where codostad='" + maskedTextBox1.Text + "'", conn);


try
{
if (conn.State != System.Data.ConnectionState.Open)
conn.Open();
int i = cmd5.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("عملیات حذف با موفقیت انجام شد", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
textBoxX1.Text = "";
textBoxX2.Text = "";
Loadgridview();
}


else
MessageBox.Show("چنین کدی وجود ندارد");
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}

}