PDA

View Full Version : در هنگام ویرایش از گرید ویو ، به جای ویرایش یک سطر تمام سطر ها ویرایش میشوند چرا؟



omidrayaneh.68
سه شنبه 01 مرداد 1392, 16:26 عصر
سلام به همه دوستان بچه ها من یه برنامه نوشتم وقتی که میخام از داخل گرید ویو ویرایش کنم اطلاعات را پاس میدم به تکس باکس ها وقتی دکمه ویرایش رو میزنم همه اطلاعات ستون ها و سط ها ویرایش میشه در صورتی که فقط باید یک سط انتخاب شده ویرایش بشه اطلاعاتمم به تکس باکس ها هم میره فقط برا ی ویرایش همه اطلاعات سطر ها ویرایش میشه چرا؟به عکس ضمیمه دقت کنید نام کالا را به rrrr تغییر دادم نام کالا تمام لیست ها تغییر کرد
string s3;
ds.Clear();

s3 = "update forosh set name_kala='" + txt_edit_name_kala.Text + "',tedad_kala=" + txt_edit_tedad_kala.Text + ",date_forosh='" + txt_edit_date_forosh.Text + "',price=" + txt_edit_price.Text + "";
SqlCommand cmd = new SqlCommand(s3, con);

try
{
con.Open();
cmd.ExecuteNonQuery();
da.Fill(ds, "chu1");
DG_forosh.DataSource = ds;
DG_forosh.DataMember = "chu1";
con.Close();
MessageBox.Show("اطلاعات جدید جایگزین شد", "پیام", MessageBoxButtons.OK, MessageBoxIcon.Information);
ds.Clear();
da.SelectCommand.CommandText = "select id as [ردیف],sn_factor as [شماره فاکتور],name_kala as [نام کالا],name_moshtari as [نام مشتری],tedad_kala as [تعداد کالا],date_forosh as [تاریخ فروش],price as [قیمت کل] from forosh";
da.Fill(ds, "ch");
DG_forosh.DataSource = ds;
DG_forosh.DataMember = "ch";

}
catch
{
MessageBox.Show("مشکل در جایگزینی اطلاعات", "اشکال", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

mahdi_7610
سه شنبه 01 مرداد 1392, 16:35 عصر
سلام

باید برای دستور Update شرط بزاری .

شرط را بر اساس شماره فاکتور بزار

roolinjax
سه شنبه 01 مرداد 1392, 16:42 عصر
سلام در انتهای دستور ویرایش یه شرط به صورت زیر اضافه کنید :
where factor_number = "+txtFactorNumber.Text

omidrayaneh.68
سه شنبه 01 مرداد 1392, 16:50 عصر
نمیشه خیلی این کارو کردم شرطم میدم بازم آب از آب تکون نمیخوره ببینید این datagrid1 من هست خاصیت cellclick دیگه اعصابمو بهم ریخته یه کم گیج شدم درست نمیشه
private void DG_forosh_CellClick(object sender, DataGridViewCellEventArgs e)
{
string s, se;
try
{
if (DG_forosh.CurrentCell.Value.ToString() == "حذف")
{

s = Convert.ToString(DG_forosh.CurrentRow.Cells["ردیف"].Value);
if (MessageBox.Show("آیا می خواهید اطللاعات حذف شود", "اخطار", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{

SqlCommand cmd = new SqlCommand("delete from forosh where id='" + s + "'", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات حذف شد", "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Warning);

ds.Clear();
da.SelectCommand.CommandText = "select id as [ردیف],sn_factor as [شماره فاکتور],name_kala as [نام کالا],name_moshtari as [نام مشتری],tedad_kala as [تعداد کالا],date_forosh as [تاریخ فروش],price as [قیمت کل] from forosh";
da.Fill(ds, "t01");
DG_forosh.DataSource = ds;
DG_forosh.DataMember = "t01";

}
}

if (DG_forosh.CurrentCell.Value.ToString() == "ویرایش")
{

se = Convert.ToString(DG_forosh.CurrentRow.Cells["ردیف"].Value);
ds.Clear();
da.SelectCommand.CommandText = "select * from forosh where id='" + se + "'";
da.Fill(ds, "t01");
txt_edit_name_kala.Text = ds.Tables["t01"].Rows[0][3].ToString();
txt_edit_tedad_kala.Text = ds.Tables["t01"].Rows[0][6].ToString();
txt_edit_date_forosh.Text = ds.Tables["t01"].Rows[0][7].ToString();
txt_edit_price.Text = ds.Tables["t01"].Rows[0][8].ToString();


}
}

catch
{
MessageBox.Show(".گزینه ای را انتخاب نمائید", "اشکال", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}