PDA

View Full Version : ریختن اطلاعات فرم دوم در DataGridView فرم اول



reza11_2005
شنبه 25 فروردین 1397, 23:07 عصر
سلام وقت بخیر ما این روز ها حسابی فعال شدایم اما خوب من یک مشکل کوچک دارم

ببنید من دوتا فرم دارم

و دو جدول

الان می خواهم اطلاعات TexBox فرم دوم داخل دیتا گرید فرم اول وارد کنم و بعدا از آن تمامی اطلاعات داخل دیتابیس وارد کنم اگر امکانش هست توضیحی بدهید چطور می شود اینکار کرد و اگر منبعی سراغ دارید ممنون شما می شوم
با تشکر

danialafshari
یک شنبه 26 فروردین 1397, 11:49 صبح
با سلام
برای جالجایی اطلاعات بین دو فرم میتونید از کلاس استفاده کنید و اگر قراره فرم new بشه میتونید از سازنده(Constructor) استفاده کنید
یک کلاس بسازید:
public class Class1 {
private static string firstName;


public static string FirstName
{
get { return firstName; }
set { firstName = value; }
}


private static string lastName;


public static string LastName
{
get { return lastName; }
set { lastName = value; }
}
}
روی فرم 1 یک دیتاگرید با Column قرار دهید
حالا در فرم 1 یک دکمه برای باز کردن فرم 2 بذارید:

private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
if (frm2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
dataGridView1.Rows.Add(Class1.FirstName, Class1.LastName);
}
}

در فرم 2 هم بصورت زیر میتونید اطلاعات TextBox ها رو به پراپرتی های کلاس منتقل کنید:
private void SendData_Click(object sender, EventArgs e) {
Class1.FirstName = txtFirstName.Text.Trim();
Class1.LastName = txtLastName.Text.Trim();
DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}

برای ذخیره در دیتابیس هم یک حلقه For قرار میدی به تعداد سطر Row های دیتاگرید عمل Insert رو انجام میده
موفق باشید

barnamenevisjavan
یک شنبه 26 فروردین 1397, 23:27 عصر
سلام وقت بخیر ما این روز ها حسابی فعال شدایم اما خوب من یک مشکل کوچک دارم

ببنید من دوتا فرم دارم

و دو جدول

الان می خواهم اطلاعات TexBox فرم دوم داخل دیتا گرید فرم اول وارد کنم و بعدا از آن تمامی اطلاعات داخل دیتابیس وارد کنم اگر امکانش هست توضیحی بدهید چطور می شود اینکار کرد و اگر منبعی سراغ دارید ممنون شما می شوم
با تشکر
راه ساده تر این هستش:
در فرم 1 متغیر پابلیک و استاتیک بسازین
public static string myvalue = string.empty;

بعدش هرجا قراره مقدارش این متغیر نشون بدین قرار بدینش.
درنهایت در فرم 2 که قراره مقدارش رو از اونجا بهش پاس بدین به این صورت عمل کنید
form1.myvalue = "مقدار جدید";
new form1().showdialog();

rehbare
سه شنبه 25 اردیبهشت 1397, 14:08 عصر
تشکر
حالا اگه بخوایم از گرید ویو یک به گرید ویو 2 ارسال کنیم چطوری میشه

danialafshari
سه شنبه 25 اردیبهشت 1397, 16:39 عصر
تشکر
حالا اگه بخوایم از گرید ویو یک به گرید ویو 2 ارسال کنیم چطوری میشه
آیدی از گرید1 استخراج میشه و گرید 2 بر اساس اون آیدی جستجو میکنه که معمولاً برای کلید اصلی و کلید خارجی مورد استفاده قرار میگیره

rehbare
سه شنبه 25 اردیبهشت 1397, 18:09 عصر
آیدی از گرید1 استخراج میشه و گرید 2 بر اساس اون آیدی جستجو میکنه که معمولاً برای کلید اصلی و کلید خارجی مورد استفاده قرار میگیره

کدش چطوری نوشته می شه

danialafshari
چهارشنبه 26 اردیبهشت 1397, 17:27 عصر
کدش چطوری نوشته می شه
با سلام در تاپیک خودتون کدش رو گذاشتم ID رو استخراج می کنید سپس یک Select میزنید جایی که ID = DataGridView1 استخراج شده
string _ID= dataGridView1["id", dataGridView1.CurrentRow.Index].Value.ToString();
//Select("select * from YourTable Where ID = _ID"); //For Sample
موفق باشید