PDA

View Full Version : سوال: انتخاب چند سطر در datagridview و آپدیت آن ها



hamid_73
یک شنبه 10 فروردین 1393, 11:51 صبح
سلام دوستان
من می خوام چند سطری که تو دیتا گرید ویو انتخاب شده رو اپدیت کنم
این کد واسه اپدیت یک سطره انتخاب شده است چه جوری تغیریش بدم چند سطر رو اپدیت کنه

CreatConnection();
OpenConnection();
int up = int.Parse(dgvInfo.CurrentRow.Cells[0].Value.ToString());
int a = int.Parse(dgvInfo.CurrentRow.Cells[3].Value.ToString());
foreach (DataGridViewRow row in dgvInfo.SelectedRows)//dgvInfo.
{
CreatConnection();
OpenConnection();
cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "UPDATE tbl_Reg SET Count = @Count WHERE ID =" + up;
cmd.Connection = conn;
int sum = a + int.Parse(txt_Charj.Text.Trim().ToString());
cmd.Parameters.AddWithValue("@Count", sum);
cmd.ExecuteNonQuery();
CloseConnection();

}
dgv();
MessageBox.Show("اطلاعات به روز رسانی شد");

Morteza-76
یک شنبه 10 فروردین 1393, 11:57 صبح
خب به update set تیبل خودتون یک یا چند پارامتر دیگه اضافه کنید و مقدار اون رو به سطر دل خواهتون بدید

hamid_73
یک شنبه 10 فروردین 1393, 12:02 عصر
نه منظورم اینه که کاربر مثلا 4 تا سطر از دیتا گرید ویو انتخاب کنه بعد بزنه اپدیت بعد این 2تا فیلده سطر های انتخاب شده اپدیت بشه

khokhan
یک شنبه 10 فروردین 1393, 12:47 عصر
نه منظورم اینه که کاربر مثلا 4 تا سطر از دیتا گرید ویو انتخاب کنه بعد بزنه اپدیت بعد این 2تا فیلده سطر های انتخاب شده اپدیت بشه
باسلام
بهترین کار اینه که یه ستون چک باکس به گریدتون اضافه کنین
بعد بیاین و ردیفهای چک شده رو بریزین توی یه لیست و سپس با یه حلقه ردیفهای داخل لیست رو دونه دونه ویرایش کنین و
درنهایت پیغام موفقیت ویرایش رو نمایش بدین :لبخند:
اینطوری :

private void button1_Click(object sender, EventArgs e)
{
List<DataGridViewRow> rows_checked = new List<DataGridViewRow>();
int ID=int.Parse(dataGridView1.CurrentRow.Cells[1].Value.ToString());
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells["chk"].Value) == true)
{
rows_checked.Add(row);
}
}
for (int i = 0; i < rows_checked.Count; i++)
{
var tUpd = db.zirna.FirstOrDefault(t => t.id == ID);
if (tUpd != null)
{
tUpd.p_name = dataGridView1.CurrentRow.Cells[2].Value.ToString();
tUpd.p_lname = dataGridView1.CurrentRow.Cells[3].Value.ToString();
tUpd.tell = int.Parse(dataGridView1.CurrentRow.Cells[4].Value.ToString());

}
db.SaveChanges();
MessageBox.Show("ویرایش با موفقیت انجام شد ");
fillgrid();
}
}

خواستی بگو تا نمونه براتون بدم ........
شاد !! شاد !!

hamid_73
یک شنبه 10 فروردین 1393, 13:58 عصر
نه نمی خوام چک باکس داشته باشه.
بدون چک باکس و لیست نمیشه؟؟؟؟

hamid_73
سه شنبه 12 فروردین 1393, 18:36 عصر
خودم فهمیدم مرسی از راهنمایی هاتون اینم کد درستش

if (txt_Charj.Text == "")
{
Project_Print_University.Class.Public_Class.msg_in foo("لطفا مقداری را برای اضافه کردن شارژ وارد نمایید");
txt_Search.Focus();
return;
}
try
{
CreatConnection();
OpenConnection();
foreach (DataGridViewRow row in dgvInfo.SelectedRows)//dgvInfo.
{
CreatConnection();
OpenConnection();
cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "UPDATE tbl_Reg SET Count = @Count WHERE ID =" + int.Parse(row.Cells[0].Value.ToString());
cmd.Connection = conn;
int sum = int.Parse(row.Cells[3].Value.ToString()) + int.Parse(txt_Charj.Text.Trim().ToString());
cmd.Parameters.AddWithValue("@Count", sum);
cmd.ExecuteNonQuery();
CloseConnection();

}
dgv();
Project_Print_University.Class.Public_Class.msg_in fo("اطلاعات به روز رسانی شد");
}
catch (SqlException exp) { MessageBox.Show(exp.Message); }

momimomi
یک شنبه 24 فروردین 1393, 00:19 صبح
باسلام
بهترین کار اینه که یه ستون چک باکس به گریدتون اضافه کنین
بعد بیاین و ردیفهای چک شده رو بریزین توی یه لیست و سپس با یه حلقه ردیفهای داخل لیست رو دونه دونه ویرایش کنین و
درنهایت پیغام موفقیت ویرایش رو نمایش بدین :لبخند:
اینطوری :

private void button1_Click(object sender, EventArgs e)
{
List<DataGridViewRow> rows_checked = new List<DataGridViewRow>();
int ID=int.Parse(dataGridView1.CurrentRow.Cells[1].Value.ToString());
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells["chk"].Value) == true)
{
rows_checked.Add(row);
}
}
for (int i = 0; i < rows_checked.Count; i++)
{
var tUpd = db.zirna.FirstOrDefault(t => t.id == ID);
if (tUpd != null)
{
tUpd.p_name = dataGridView1.CurrentRow.Cells[2].Value.ToString();
tUpd.p_lname = dataGridView1.CurrentRow.Cells[3].Value.ToString();
tUpd.tell = int.Parse(dataGridView1.CurrentRow.Cells[4].Value.ToString());

}
db.SaveChanges();
MessageBox.Show("ویرایش با موفقیت انجام شد ");
fillgrid();
}
}

خواستی بگو تا نمونه براتون بدم ........
شاد !! شاد !!
سلام
اگه یه نمونه بذارین بسیار ممنون میشم:تشویق:

2012ramin
دوشنبه 01 تیر 1394, 13:33 عصر
سلام . این txt_Charj.Text چیه؟