Сохранение данных из двух форм в одну таблицу в приложении Winforms

#c# #visual-studio #winforms

#c# #visual-studio #winforms

Вопрос:

У меня есть две Winforms, где форма 1 используется для ввода данных из первых семи полей, а другие формы используются для ввода для последних трех полей, где у меня есть таблица, хранящаяся на SQL Server, но проблема в том, что всякий раз, когда я пытался сохранить данные во вторых формах, они сохраняются в самой первой строке вместостроки, в которой обновляется первая форма. Может кто-нибудь, пожалуйста, помогите, как связать эти две формы и сохранить их в одной строке?

Это код для сохранения данных во второй форме, и скриншоты прилагаются:

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

namespace Windows  
{  
    public partial class Form1 : Form  
    {  
        public Form1()  
        {  
            InitializeComponent();  
        }  
          
        private void btnInsert_Click(object sender, EventArgs e)  
        {  
            SqlConnection con = new SqlConnection(cs);  
            SqlCommand cmd;  
            con.Open();  
            string s="insert into Student values(@p1,@p2,@p3)";  

            cmd = new SqlCommand(s,con);  
            cmd.Parameters.AddWithValue("@p1",rejectReason1ComboBox.Text);  
            cmd.Parameters.AddWithValue("@p2",rejectReason2ComboBox.Text);  
            cmd.Parameters.AddWithValue("@p3",rejectReason3ComboBox.Text);  
            cmd.CommandType = CommandType.Text;  

            int i = cmd.ExecuteNonQuery();  
            con.Close();  

            MessageBox.Show(i  " Row(s) Inserted ");  
        }  
    }  
}  
 

введите описание изображения здесь

Комментарии:

1. Вы просто хотите получить входные данные из дочерней формы обратно в родительскую форму?

2. ДА.. Я имею в виду, что я хочу, чтобы данные дочерней формы также сохранялись в источнике данных родительской формы (обе формы имеют источник данных одной таблицы)

Ответ №1:

Вы можете добавить общедоступные свойства в свой ChildForm подобный:

 public string Reason1 {get; set;}
public string Reason2 {get; set;}

private void Combobox1_SelectedIndexChanged(object sender, EventArgs e)
{
     Reason1 = (sender as ComboBox).SelectedItem.ToString();
}

private void ButtonOK_Click(object sender, EventArgs e)
{
     (sender as Button).DialogResult = DialogResult.OK;
     // Or you can set this DialogResult property from Button's property window
}
 

А затем в ParentForm , используйте ChildForm , как это

 private void ButtonOpenChildForm_Click(object sender, EventArgs e)
        {
            using (ChildForm form = new ChildForm())
            {
                if (form.ShowDialog() == DialogResult.OK)
                {
                    // Receive the Reasons here in any variable
                    string reason1 = form.Reason1;
                    string reason2 = form.Reason2;
                }
            }
        }