PDA

View Full Version : راهنمایی ویرایش اطلاعات datagrid از طریق textBox



Raki007
یک شنبه 16 آذر 1393, 10:57 صبح
سلام
من میخوام وقتی ID رکورد مورد نظرم رو میدم بتونم تمام اطلاعات رکورد رو اعم از (نام، نام خانوادگی، تلفن، آدرس و ...) به صورت جدا جدا داخل textBox مخصوص خودش قرار بده... مثلا وقتی دکمه ویرایش رو زدم بیاد فیلد نام رو توی txtname و فیلد تلفن رو توی txtphone و در آخر همه رو توی textBox مخصوص قرار بده و بعد از زدن دکمه ثبت تمام اطلاعات اون رکورد ویرایش شده و داخل دیتا گرید ویو هم نمایش داده بشه... البته اینم بگم که بانک من اکسس هست و برای اتصال به بانک از کدهای زیر استفاده کردم:


OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\dbamlak.accdb;");
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tbmoshteri", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;


کد بالا رو توی فرم لود نوشتم...
پیشاپیش از همه تشکر میکنم...

jpjpjp
یک شنبه 16 آذر 1393, 21:46 عصر
کد زیر برای اینه که وقتی یه بار روی یکی از سطرهای دیتاگرید کلیک کردی کل اطلاعات تون توی تکس باکس مخصوص خودش نمایش داده بشه ببین بدردت میخوره
private void dataGridViewX1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridViewX1.Rows.Count > 0)
{
txtName.Text = dataGridViewX1.Rows[dataGridViewX1.CurrentRow.Index].Cells[1].Value.ToString();

txtFamily.Text = dataGridViewX1.Rows[dataGridViewX1.CurrentRow.Index].Cells[2].Value.ToString();
}
}

Raki007
یک شنبه 16 آذر 1393, 22:19 عصر
ایول دمت گرم... خیلی خیلی ممنون... نمیدونی چقدر دنبال همچین کدی بودم... بازم ممنون...

pure_love
پنج شنبه 30 بهمن 1393, 10:19 صبح
کد زیر برای اینه که وقتی یه بار روی یکی از سطرهای دیتاگرید کلیک کردی کل اطلاعات تون توی تکس باکس مخصوص خودش نمایش داده بشه ببین بدردت میخوره
private void dataGridViewX1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridViewX1.Rows.Count > 0)
{
txtName.Text = dataGridViewX1.Rows[dataGridViewX1.CurrentRow.Index].Cells[1].Value.ToString();

txtFamily.Text = dataGridViewX1.Rows[dataGridViewX1.CurrentRow.Index].Cells[2].Value.ToString();
}
}







باسلام.
میگم من تمام کارهایی رو که باید محتویات اطلاعات از گریدویو وارد تکس باکس ها بشه انجام دادم.
حالا وقتی یکی از تکس باکسها را تغییر میدم روی دکمه ویرایش میزنم از این خط خطا میگیره : cmd.ExecuteNonQuery();

اینم کدی که برای ویرایش نوشتم:


SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\giutar\meh ran_tarahi\C#‎‎\Persion Engilish\parsian\parsian\bin\Debug\persionsql.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand cmd = new SqlCommand("Update from insertstd set CodeStudent=@codestd , FirstName=@frsname , LastName=@lstname , FatherName=@ftrname , Birthday=@brd , LevelStudent=@lvstd , HomePhone=@hp , MobileNumber=@mn ,DateRegistration=@dr ,address=@adres ,Tuition=@tu ,EarnestMoney=@em , Remaining=@r");
cmd.Parameters.AddWithValue("@codestd", textBox7.Text);
cmd.Parameters.AddWithValue("@frsname", textBox1.Text);
cmd.Parameters.AddWithValue("@lstname", textBox4.Text);
cmd.Parameters.AddWithValue("@ftrname", textBox5.Text);
cmd.Parameters.AddWithValue("@brd", textBox3.Text);
cmd.Parameters.AddWithValue("@lvstd", textBox2.Text);
cmd.Parameters.AddWithValue("@hp", textBox8.Text);
cmd.Parameters.AddWithValue("@mn", textBox6.Text);
cmd.Parameters.AddWithValue("@dr", textBox9.Text);
cmd.Parameters.AddWithValue("@adres", textBox10.Text);
cmd.Parameters.AddWithValue("@tu", textBox11.Text);
cmd.Parameters.AddWithValue("@em", textBox12.Text);
cmd.Parameters.AddWithValue("@r", textBox13.Text);
con.Open();
cmd.ExecuteNonQuery(); (خطا میگیره)
con.Close();

محمد آشتیانی
پنج شنبه 30 بهمن 1393, 11:19 صبح
سلام
اون From که داخل کوئری نوشتی اضافست ، ضمنا قاعدتا این کوئری باید یه بخش Where هم داشته باشه ، الان این رو اگر اجرا کنی تمام رکورد ها آپدیت میشن.





موفق باشید

pure_love
جمعه 01 اسفند 1393, 16:33 عصر
سلام
اون From که داخل کوئری نوشتی اضافست ، ضمنا قاعدتا این کوئری باید یه بخش Where هم داشته باشه ، الان این رو اگر اجرا کنی تمام رکورد ها آپدیت میشن.





موفق باشید

دوست عزیز اون from را حذف کردم فقط در بخش where باید چیکار کنم؟چجوری بنویسم که فقط همون ردیف از گرید ویو update بشه؟(به فرض شرط هم بر روی کد دانش آموز(codestd) باشد)
مرسی

farzinc
چهارشنبه 09 دی 1394, 18:49 عصر
دوست عزیز اون from را حذف کردم فقط در بخش where باید چیکار کنم؟چجوری بنویسم که فقط همون ردیف از گرید ویو update بشه؟(به فرض شرط هم بر روی کد دانش آموز(codestd) باشد) مرسی SqlCommand cmd = new SqlCommand("Update from insertstd set CodeStudent=@codestd , FirstName=@frsname , LastName=@lstname WHERE codestd =@codestd

این گد جایگزین اون کد کنین برای دوستانی که به مشکل میخورن گذاشتم تاریخ تایپکم میدونم ماله کی هست فقط خواستم کامل بشه که نیمه کاره نمونه


موفق باشید

شهابسلطانی
چهارشنبه 09 دی 1394, 23:25 عصر
سلام
میشه یه public نوشت مثلا بنام FillGrid و توی اون بازخوانی فرم رو نوشت و سپس بعد از درج کد update
FillGrid رو فراخوانی کرد و در وااقع رفرش صورت میگیره
//
اینم از کد راحت تری نسبت به کدی که دوستمون برای کلیک کردن و نمایش اطلاعات در textbox نوشتن
//
textbox1.text=DataGridViwe1.CurrentRow.cells["NameFild"].value.ToString();
ابتدا باید خاصیت RowHeaderMouseDubleClick رو فعال کن سپس داخلش کد بالا رو که عرض کردم بنویس
حالا بر روی هریک از ردیفها دابل کلیک کنی اطلاعاتش میاد توی textbox
//
سربلند باشید