protected override void OnExecuteComplete(ref WFSRESULT result) { switch (result.dwCommandCodeOrEventID) { case PINDefinition.WFS_CMD_PIN_GET_DATA: if (result.hResult != XFSDefinition.WFS_SUCCESS) { OnGetDataError(result.hResult); } else if (GetDataCompleted != null) { GetDataCompleted.Invoke(); } break; } }
public static async void GetData(BindingSource main, BindingSource detail) { DataSet db = new DataSet { Locale = System.Globalization.CultureInfo.InvariantCulture }; if (await GetServerPing()) { using (SqlConnection cn = new SqlConnection(Connection)) { try { cn.Open(); SqlCommand sCommandMain = new SqlCommand(CommandMain, cn) { CommandTimeout = 5 }; SqlCommand sCommandDetail = new SqlCommand(CommandDetail, cn) { CommandTimeout = 5 }; SqlDataAdapter AdapterMain = new SqlDataAdapter(sCommandMain); SqlDataAdapter AdapterDetail = new SqlDataAdapter(sCommandDetail); AdapterMain.Fill(db, "PhyServers"); AdapterDetail.Fill(db, "VirServers"); //Связать отношением DataRelation relation = new DataRelation("AllServers", db.Tables["PhyServers"].Columns["ID"], db.Tables["VirServers"].Columns["ID"]); //Он же ParrentServer db.Relations.Add(relation); cmd.DgStatus(db.Tables["PhyServers"], 1); // 1 - таблица физических серверов cmd.DgStatus(db.Tables["VirServers"], 2); // 2 - таблица виртуальных сер main.DataSource = db; main.DataMember = "PhyServers"; detail.DataSource = main; detail.DataMember = "AllServers"; // запускаем событие об успешной загрузке данных. GetDataCompleted?.Invoke(); } catch (SqlException) { throw; } } db.Dispose(); } else { MessageBox.Show("Не создано подключение к базе данных. Проверьте, что вы база доступна по сети.\n", "Production servers", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }