PDA

View Full Version : سوال: ضافه كردن سطر به گريدويو



silvery
یک شنبه 17 اردیبهشت 1391, 09:47 صبح
سلام من يه گريد ويو دارم كه ميخوام با كليك روي يه دكمه،اول اطلاعاتي كه داخل چنتا تكس باكسه رو به گريدويو اضافه كنه بعد يه سطر به گريد ويو اضافه شه.كد زير رو نوشتم:

private void button1_Click(object sender, EventArgs e)
{
int k = dataGridView1.Rows.Count-1;
dataGridView1.Rows[k].Cells[0].Value = k;
dataGridView1.Rows[k].Cells[1].Value = textBox1.Text;
dataGridView1.Rows[k].Cells[2].Value = textBox2.Text;
dataGridView1.Rows[k].Cells[3].Value = textBox3.Text;
dataGridView1.Rows[k].Cells[4].Value = textBox4.Text;
dataGridView1.Rows[k].Cells[5].Value = textBox5.Text;
dataGridView1.Rows.Add(1);

}

اماوقتي روي دكمه ميزنم خطاي زيرو ميده:

Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.

مشكلش چيه؟

hakim22
یک شنبه 17 اردیبهشت 1391, 10:40 صبح
اگر شما جدول رو از یک دیتابیس مستقیما bind می کنید یا از کلاس آماده استفاده می کنید برای اضافه کردن مقدار به جدول باید به دیتابیس مقداری رو اضافه کنید تا تغییرات در جدول گرید نشون داده بشه.
بهتره به صورت دستی گزارشگیری کنید و فیلدها رو با یک حلقه پر کنید و بعد اگر این کد کار خواهد کرد.

silvery
یک شنبه 17 اردیبهشت 1391, 12:22 عصر
اگر شما جدول رو از یک دیتابیس مستقیما bind می کنید یا از کلاس آماده استفاده می کنید برای اضافه کردن مقدار به جدول باید به دیتابیس مقداری رو اضافه کنید تا تغییرات در جدول گرید نشون داده بشه
راستش من كار كردن با ديتا گريد رو بلد نيستم.همين كدم از خودم نوشتم.اما كاري كه من ميخوام بكنم دقيقا برعكس اينه.يعني من ميخوام ديتابيسم با اين جدول پرشه نه جدولم با ديتابيس


بهتره به صورت دستی گزارشگیری کنید و فیلدها رو با یک حلقه پر کنید و بعد اگر این کد کار خواهد کرد.
من ميخوام هر دفه يه سطر به ليست اضافه شه نه اينكه كل جدولو با يه بار كليك پر كنم پس نميتونم از حلقه استفاده كنم

hakim22
یک شنبه 17 اردیبهشت 1391, 15:10 عصر
خط آخر که rows.add داره رو بیارید به خط اول
اصولا نباید مشکلی باشه !
اول باید یک ردیف به گرید اضافه کنید بعد سلولهای آن را تغییر دهید .

omidamiry
یک شنبه 17 اردیبهشت 1391, 22:40 عصر
این کدو امتحان کن


datagride.rows.insert(i,txbox1,txbos2,.......);

از نظر املایی خطاهاشو بگیر.

متغییر i شماره سطریه که میخای ادد کنی و مقدارهاتو با کاما جدا کن و در ادامش بنویس . سماره ستون نمیخاد

fadakplus
دوشنبه 18 اردیبهشت 1391, 04:32 صبح
سلام دوستان:
این روشو امتحان کن صدرصد جواب میده


this.dataGridView1.Columns.Add("1", "1");
this.dataGridView1.Columns.Add("2", "2");
this.dataGridView1.Columns.Add("3", "3");
this.dataGridView1.Columns.Add("4", "4");
this.dataGridView1.Rows.Add("five", "six", "seven", "eight");

ali_habibi1384
دوشنبه 18 اردیبهشت 1391, 06:17 صبح
خط آخر که rows.add داره رو بیارید به خط اول
اصولا نباید مشکلی باشه !
اول باید یک ردیف به گرید اضافه کنید بعد سلولهای آن را تغییر دهید .

منم باهاش موافقم.اگر هم از ديتا تيبل يا ديتا ست استفاده كردين ميتونيد به ديتا تيبلتون اضافه كنيد و خودش توي ديتا گريد نشون ميده