/// <summary> /// Метод для поиска столицы и региона по Id. Метод инкапсулирован для внутреннего использования в классе. /// </summary> /// <param name="CityId">Id столицы</param> /// <param name="RegionId">Id региона</param> /// <returns></returns> private CountriesInfo GetById(int CityId, int RegionId) { CountriesInfo country = new CountriesInfo(); try { using (SqlConnection connect = new SqlConnection(connection)) { connect.Open(); string City = "SELECT * FROM [Cities] WHERE @Id = Id"; try { using (SqlCommand sqlCommand = new SqlCommand(City, connect)) { sqlCommand.Parameters.AddWithValue("@Id", CityId); sqlCommand.ExecuteNonQuery(); try { using (var sqlRead = sqlCommand.ExecuteReader()) { while (sqlRead.Read()) { country.Capital = sqlRead.GetValue(1).ToString(); } } } catch (Exception exp) { MessageBox.Show(exp.Message); } } } catch (Exception exp) { MessageBox.Show(exp.Message); } string Region = "SELECT * FROM [Regions] WHERE @Id = Id"; try { using (SqlCommand sqlCommand = new SqlCommand(Region, connect)) { sqlCommand.Parameters.AddWithValue("@Id", RegionId); sqlCommand.ExecuteNonQuery(); try { using (var sqlRead = sqlCommand.ExecuteReader()) { while (sqlRead.Read()) { country.Region = sqlRead.GetValue(1).ToString(); } } } catch (Exception exp) { MessageBox.Show(exp.Message); } } } catch (Exception exp) { MessageBox.Show(exp.Message); } connect.Close(); } } catch (Exception exp) { MessageBox.Show(exp.Message); } return(country); }
public Form1() { InitializeComponent(); info = new CountriesInfo(); ServerSettings.LoadValues(); if (ServerSettings.Trigger()) { AddSource(); } }
/// <summary> /// Вспомогательные методы /// </summary> /// <param name="info"> Экземпляр класса, содержащего данные о стране</param> #region MyMethods private void TextFilling(CountriesInfo info) { if (info != null) { textBox1.Text = info.Code; textBox2.Text = info.Capital; textBox4.Text = Convert.ToString(info.Area); textBox5.Text = Convert.ToString(info.Population); textBox6.Text = info.Region; } }
/// <summary> /// Метод формирования массива элементов для заполнения таблицы DataGrid /// </summary> /// <param name="countries">Экземпляр класса, содержащего данные о стране</param> /// <returns></returns> private string[] FieldMassive(CountriesInfo countries) { string[] elements = new string[6]; elements[0] = countries.Country; elements[1] = countries.Code; elements[2] = countries.Capital; elements[3] = Convert.ToString(countries.Area); elements[4] = Convert.ToString(countries.Population); elements[5] = countries.Region; return(elements); }
private void button1_Click(object sender, EventArgs e) { if (textBox3.Text != null) { WebServiceRequest request = new WebServiceRequest(); if (request.CheckSite()) { // Заполнение массива параметров подключения к ДБ в случае, если пришлось вводить их самому в полях настроек if (ServerSettings.Trigger()) { AddSource(); } // Получение от ресурса json страницы //request.Connection(textBox3.Text); // С помощью метода Parsing ищем страну и используя метод ShowData получаем экземпляр CountriesInfo, содержащий необходимые данные info = request.ShowData(request.Parsing(textBox3.Text)); //Заполняем окна информацией о стране TextFilling(info); if (info != null) { // Выводим диалоговое окно с предложением сохранить данные в БД DialogResult dialogResult = MessageBox.Show("Сохранить информацию в базе данных?", "Страна найдена", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { if (parametrs.Length == 4) { DataBase data = new DataBase(parametrs[0], parametrs[1], parametrs[2], parametrs[3]); //.SearchUpdate(info.Code, info.Capital, info.Region, info.Country, info.Area, info.Population); data.SearchCity(info.Capital); data.SearchRegion(info.Region); data.SearchCountry(info.Code); data.AddOrUpdateCountry(info.Code, info.Country, info.Area, info.Population); TextClear(); } else { MessageBox.Show("Настройте подключение"); } } else if (dialogResult == DialogResult.No) { //похоже не пригодилось } } } } }
/// <summary> /// Метод, возвращающий необходимые данные о стране /// </summary> /// <param name="json">Параметр, содержащий набор json данных о конкретной стране</param> /// <returns></returns> public CountriesInfo ShowData(JSONNode json) { if (json != null) { CountriesInfo info = new CountriesInfo(); info.Country = json[0]["name"].Value; info.Code = json[0]["alpha2Code"].Value; info.Capital = json[0]["capital"].Value; info.Region = json[0]["region"].Value; info.Area = json[0]["area"].AsDouble; info.Population = json[0]["population"].AsInt; return(info); } else { return(null); } }
/// <summary> /// Метод для получения данных по всем странам в БД. Возвращает список стран, если они вообще есть. /// </summary> /// <returns></returns> public List <CountriesInfo> GetAllValues() { string value = "SELECT * FROM Countries"; List <CountriesInfo> countries = new List <CountriesInfo>(); try { using (SqlConnection connect = new SqlConnection(connection)) { connect.Open(); try { using (SqlCommand command = new SqlCommand(value, connect)) { using (var read = command.ExecuteReader()) { while (read.Read()) { CountriesInfo country = new CountriesInfo(); country.Country = read.GetValue(1).ToString(); country.Code = read.GetValue(2).ToString(); country.Area = Convert.ToDouble(read.GetValue(4)); country.Population = Convert.ToInt32(read.GetValue(5)); int CityId = Convert.ToInt32(read.GetValue(3)); int RegionId = Convert.ToInt32(read.GetValue(6)); country.Capital = GetById(CityId, RegionId).Capital; country.Region = GetById(CityId, RegionId).Region; countries.Add(country); } } } } catch (Exception exp) { MessageBox.Show(exp.Message); } connect.Close(); } } catch (Exception exp) { MessageBox.Show(exp.Message); } return(countries); }