PDA

View Full Version : سوال: کار با Datagridview



Aqeel95
جمعه 21 فروردین 1394, 00:37 صبح
سلام خدمت مهندسین و برنامه نویسای گل سایت
*********
من انتقال اطلاعات مثلا از Datagrid به TextBox و بعد از اون Update اونارو بلدم ولی با توجه به این که تعداد فیلد ها خیییییییییییییلی زیاده میخوام که اطلاعات موجود تو هر ردیف از Datagrid رو که کاربر انتخاب میکنه به یک فرم جدید(2 form ) منتقل بشن و وقتی کاربر اطلاعات رو تغییر داد و ذخبره رو زد ، اطلاعات تغییر کنه دیگه!!!!!:لبخند:
*******
یکم سخت پرسیدم سوالو
به طور خلاصه میخوام که اطلاعات رو از Datagrid تو فرم 1 به فرم 2 منتقل کنم
چجوریاست؟

am_al_59
جمعه 21 فروردین 1394, 00:43 صبح
تو فرم 2 یک متد بزار دادههاتو بریز تو یک کلاس یا کل DataRow رو پاس بده بهش

Aqeel95
جمعه 21 فروردین 1394, 00:53 صبح
تو فرم 2 یک متد بزار دادههاتو بریز تو یک کلاس یا کل DataRow رو پاس بده بهش

خیلی مچکر از پاسخ سریعتون
ولی بیزحمت یکم موشکافانه تر
خییییلی سخت بود توضیحی که دادید:گریه:

am_al_59
جمعه 21 فروردین 1394, 00:59 صبح
این مثال ساده برای دریافت DataRow در فرم 2

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace WindowsFormsApplication13
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}


private void Form2_Load(object sender, EventArgs e)
{


}


public void GetData(DataRow dr)
{
textBox1.Text = dr["نام ستون یا شماره"].ToString();
}


}
}


اون قسمت از کدت که داده هارو تو Grid میریزی بده تا طبق کد خودت مثال فرم 1 روهم بدم

Aqeel95
جمعه 21 فروردین 1394, 11:24 صبح
سلام مجدد
توی رویداد Form load من Datagrid رو پر میکنم
با این کد:


private void search_Load(object sender, EventArgs e)
{
sqlcom.Connection = Main_p.sqlcon;
sqlda.SelectCommand = sqlcom;
dataGridView1.AutoGenerateColumns = false;
dt.Clear();
sqlcom.CommandText = "select * from Tbl_Add where Row>=1";
sqlda.Fill(dt);
dataGridView1.DataSource = dt;

}


با استفاده از کد زیر هم میتونم توی همون فرم مثلا ستون Name انتخاب شده رو بریزم توی TextBox1 و حتی update اطلاعات رو هم بلدم تا حدودی


TextBox1.Text=dataGridView1.CurrentRow.Cells[3].Value.ToString();

(3=name)
اما همونطور که گفتم میخوام که وقتی تو فرم 1 یک ردیف از datagrid رو انتخاب کرد و دکمه edit رو زد فرم 2 باز بشه و توی همون رویداد Load تمام اطلاعات اون ردیف منتقل بشه به Textboxهای مربوط به خودشون

اینم 5تا از ستونام شاید به دردتون بخوره
Sname
Fname
Secname
City
Bdate

am_al_59
جمعه 21 فروردین 1394, 12:10 عصر
فرم دو کدشو بکن

namespace WindowsFormsApplication13
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}


private void Form2_Load(object sender, EventArgs e)
{


}


public void GetData(DataGridViewRow dr)
{
textBox1.Text = cell["نام ستون یا شماره"].Value.ToString();
}


}
}


در فرم 1 هم یک متغیر باید داشته باشی که به فرم 2دسترسی داشته باشه مثلاً frm
برای پاس دادن مقدار به فرم 2 کدش این میشه

frm.GetData(dataGridView1.CurrentRow);


توی متد GetData فرم 2 دقیقاً مثل فرم یک همونطور که نوشتی با Cell ها کار کن
مثلاً

public void GetData(DataGridViewRow dr)
{
TextBox1.Text = cell[3].Value.ToString();
}

Aqeel95
جمعه 21 فروردین 1394, 17:02 عصر
با تشکر از شما اما منظورتون رو از این قسمت نفهمیدم



در فرم 1 هم یک متغیر باید داشته باشی که به فرم 2دسترسی داشته باشه مثلاً frm
برای پاس دادن مقدار به فرم 2 کدش این میشه

frm.GetData(dataGridView1.CurrentRow);




الان اطلاعات جدول رو ریختید توی frm?
یا چی؟

توی فرم 2 متغیر رو به چه صورت تعریف کنم؟:متعجب::گریه::افسرده:

Aqeel95
جمعه 21 فروردین 1394, 18:10 عصر
سلام خدمت دوستان گل
میخوام شرطی تعریف کنم که اگه مثلا ستون 3 توی Datagrid انتخاب شده بود
یک سری عملیات انجام بده


if(datagridview.selectedcell[3])
}

{

این شرط که غلطه ولی درستش چیه؟

Aqeel95
جمعه 21 فروردین 1394, 19:05 عصر
دوستان گل کسی جوابو نمیدونه؟