PDA

View Full Version : سوال: ویرایش اطلاعات از دیتا گرید و نمایش در بانک و در دیتا گرید



vahidth
سه شنبه 14 آذر 1391, 15:57 عصر
سلام
دوستان من 5 تا (textbox) یک دیتا گرید و یک دکمه ویرایش در فرم دارم حالا میخوام وقتی روی دیتا گرید کلیک کردم اطلاعات اون در تکست باکس ها نمایش داده بشه و اطلاعات رو ویرایش کنم و وقتی روی دکمه ویرایش اطلاعات کلیک کردم اطلاعات در بانک و دیتا گرید نمایش داده بشه؟
96010

saeed.8350028
سه شنبه 14 آذر 1391, 16:43 عصر
سلام دوست من
برای نمایش کافی در رویداد cellClick بنویسی
txt.Text= dataGrid.Rows[e.RowIndex].Cells[0].Value.ToString();
و برای بروز کردن با داشتن id در textBox و نوشتن یک دستور ساده می تونی update کنی
موفق باشی

vahidth
سه شنبه 14 آذر 1391, 16:50 عصر
داداش دستور آپدیت رو اینجوری مینویسم ارور میده
private void button1_Click(object sender, EventArgs e)
{
try
{


DialogResult Result_Save = MessageBox.Show("آیا اطلاعات مشتری ویرایش شود؟", "ثبت اطلاعات", MessageBoxButtons.YesNo);
if (Result_Save == DialogResult.Yes)
{
cnn.Open();

scm.CommandText=("UPDATE bank SET (code=@p1,name=@p2,family=@p3,bed=@p4,best=@p5)");

scm.Parameters.AddWithValue("@p1", Int32.Parse(textBox1.Text));
scm.Parameters.AddWithValue("@p2", textBox2.Text);
scm.Parameters.AddWithValue("@p3", textBox3.Text);
scm.Parameters.AddWithValue("@p4", textBox4.Text);
scm.Parameters.AddWithValue("@p5", textBox5.Text);
scm.ExecuteNonQuery();
cnn.Close();
}
}

catch (SqlException ex)
{
if (ex.Number == 2627)//درصورتی که کد کالا تکراری بود
{
MessageBox.Show(" این کد قبلا ثبت شده ", "ثبت اطلاعات");
textBox1.Focus();
}
}
finally
{
if (cnn.State != ConnectionState.Closed)
{
cnn.Close();
}
}


}
داداش مشکل از کجاست؟

saeed.8350028
سه شنبه 14 آذر 1391, 17:13 عصر
دوست من به دستورت where را هم اضافه کن.
چه خطایی میده؟
اطلاعات را درست در textBox میاره؟

vahidth
سه شنبه 14 آذر 1391, 17:23 عصر
بله دوست عزیز اطلاعات رو در تکس باکس میاره ولی وقتی اطلاعات تکس باکس ها رو تغییر میدم و روی دکمه ویرایش کلیک میکنم این ارور میاد
96014

mhq1368
سه شنبه 14 آذر 1391, 17:50 عصر
سلام دوست عزیز
کدتوت رو به این صورت بنویسید


try
{


DialogResult Result_Save = MessageBox.Show("آیا اطلاعات مشتری ویرایش شود؟", "ثبت اطلاعات", MessageBoxButtons.YesNo);
if (Result_Save == DialogResult.Yes)
{
cnn.Open();

scm = new SqlCommand("UPDATE bank SET code=@p1,name=@p2,family=@p3,bed=@p4,best=@p5 where code=@p",cnn);
scm.Parameters.AddWithValue("@p1", Int32.Parse(textBox1.Text));
scm.Parameters.AddWithValue("@p2", textBox2.Text);
scm.Parameters.AddWithValue("@p3", textBox3.Text);
scm.Parameters.AddWithValue("@p4", textBox4.Text);
scm.Parameters.AddWithValue("@p5", textBox5.Text);
scm.ExecuteNonQuery();
cnn.Close();
}
}

catch (SqlException ex)
{
if (ex.Number == 2627)//درصورتی که کد کالا تکراری بود
{
MessageBox.Show(" این کد قبلا ثبت شده ", "ثبت اطلاعات");
textBox1.Focus();
}
}
finally
{
if (cnn.State != ConnectionState.Closed)
{
cnn.Close();
}
}

vahidth
سه شنبه 14 آذر 1391, 18:00 عصر
درست شد داداش یه سوال دیگه داشتم چطوری میتونم از همون دیتا گرید انتخاب کنم و ویرایش کنم؟
یعنی دیگه در تکست باکس نمایش ندم
میشه داداش بگی دقیقا این کد چیکار میکنه؟
where code=@p

mhq1368
سه شنبه 14 آذر 1391, 22:22 عصر
ببینید این همون پارامتره این رو من گداشتم که چک بکنه اگه کد وارد شده درست بود اطلاعات رو ویرایش کنه


البته باید تو قسمت بعد از این خط هم شناسایی بشه مثل پارامتر های p1و...