Редактировать базу, после master-detail

186
12 января 2019, 04:10

такой вопрос.Есть две БД, настроил master-detail, то есть это все работает правильно, открывает два DataGridView и при переходе по позициями, происходит выборка с другой таблицы. У меня сейчас вопрос, не могу понять каким образом теперь, сразу с DataGrid можно редактировать и по нажатию на кнопку сохранять в базу? То есть я самого смысла понять не могу, раньше добавлял, DataGrid к нему подключал нужную таблицу через конструктор, потом командой

this.table_1TableAdapter.Update(this.bASE_TELDataSet.Table_1)

Обновлял данные в БД, каким образом можно сделать сейчас? Я новичок в этом деле, так что прошу прощения.

Вот сейчас как сделано.

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        private DataGridView masterDataGridView = new DataGridView();
        private BindingSource masterBindingSource = new BindingSource();
        private DataGridView detailsDataGridView = new DataGridView();
        private BindingSource detailsBindingSource = new BindingSource();
        public Form1()
        {
            InitializeComponent();

            SplitContainer splitContainer1 = new SplitContainer();
            splitContainer1.Dock = DockStyle.Fill;
            splitContainer1.Orientation = Orientation.Horizontal;
            splitContainer1.Panel1.Controls.Add(masterDataGridView);
            splitContainer1.Panel2.Controls.Add(detailsDataGridView);
            this.Controls.Add(splitContainer1);
            this.Load += new System.EventHandler(Form1_Load);
            this.Text = "DataGridView master/detail demo";
        }
        private void GetData()
        {
            try
            {
                // Specify a connection string. Replace the given value with a 
                // valid connection string for a Northwind SQL Server sample
                // database accessible to your system.
                String connectionString = "Data Source = DATA_SERVER; Initial Catalog = BASE_TEL; Persist Security Info = True; User ID = TEST; Password = Passw0rd!";
                SqlConnection connection = new SqlConnection(connectionString);
                // Create a DataSet.
                DataSet data = new DataSet();
                data.Locale = System.Globalization.CultureInfo.InvariantCulture;

                SqlDataAdapter masterDataAdapter = new
                    SqlDataAdapter("select * from Table_1", connection);
                masterDataAdapter.Fill(data, "Table_1");

                SqlDataAdapter detailsDataAdapter = new
                    SqlDataAdapter("select * from Table_3", connection);
                detailsDataAdapter.Fill(data, "Table_3");
                // Establish a relationship between the two tables.
                DataRelation relation = new DataRelation("Номер набора",
                    data.Tables["Table_1"].Columns["Код абонента"],
                    data.Tables["Table_3"].Columns["Код абонента"]);
                data.Relations.Add(relation);

                masterBindingSource.DataSource = data;
                masterBindingSource.DataMember = "Table_1";
                // Bind the details data connector to the master data connector,
                // using the DataRelation name to filter the information in the 
                // details table based on the current row in the master table. 
                detailsBindingSource.DataSource = masterBindingSource;
                detailsBindingSource.DataMember = "Номер набора";
            }
            catch (SqlException)
            {
                MessageBox.Show("To run this example, replace the value of the " +
                    "connectionString variable with a connection string that is " +
                    "valid for your system.");
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            // Bind the DataGridView controls to the BindingSource
            // components and load the data from the database.
            masterDataGridView.DataSource = masterBindingSource;
            detailsDataGridView.DataSource = detailsBindingSource;
            GetData();
            // Resize the master DataGridView columns to fit the newly loaded data.
            masterDataGridView.AutoResizeColumns();
            // Configure the details DataGridView so that its columns automatically
            // adjust their widths when the data changes.
            detailsDataGridView.AutoSizeColumnsMode =
                DataGridViewAutoSizeColumnsMode.AllCells;
        }
    }
}
READ ALSO
Как сделать чтобы Num_2 не мог быть больше Num_1?

Как сделать чтобы Num_2 не мог быть больше Num_1?

Можете попробовать что-то подобное:

172
Как вызвать метод из класса без ссылки

Как вызвать метод из класса без ссылки

Есть приложение состоящее из библиотек классов, приложение WinForm в MVP немного исправленное под себя, + DIИз View я передаю вызов в Presenter, где он обрабатывает...

211
Многопоточность с RestSharp

Многопоточность с RestSharp

Существует такая либа как RestSharp, для отправки REST запросов на сервер, мне нужно реализовать одновременную отправку на сервер несколько запросов...

171