Справочник по C#

    Исходники по языку программирования CSharp

    Получение курсов валют с сайта “Банк России”: Справочник по C#

    /
    /
    /
    147 Views


          В данной инструкции будет рассмотрено подключение к веб-службе сайта «Банк России», для получения ежедневных данных (курсы валют, учетные цены драг, металлов и др). Центральный банк Российской Федерации (Банк России) был учрежден 13 июля 1990 г. на базе Российского республиканского банка Госбанка СССР. Подотчетный Верховному Совету РСФСР, он первоначально назывался Государственный банк РСФСР. 
          Веб-служба, веб-сервис (англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.
          На сегодняшний день наибольшее распространение получили следующие протоколы реализации веб-сервисов:

    • SOAP (Simple Object Access Protocol) — по сути это тройка стандартов SOAP/WSDL/UDDI
    • REST (Representational State Transfer)
    • XML-RPC (XML Remote Procedure Call)

         Данная служба работает через протокол SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам) — протокол обмена структурированными сообщениями в распределённой вычислительной среде.
          Создайте новый проект Windows Form в Microsoft Visual Studio с именем «RBK». В обозревателе решений выберете пункт «Ссылки» и сделайте клик правой клавишей мыши по нему. В появившемся контекстном меню выберете пункт «Добавить ссылку на службу…»


          В открывшемся окне найдите кнопку «Дополнительно» и сделайте по ней клик левой клавишей мыши.

          В открывшемся окне найдите кнопку «Добавить веб-ссылку…» и сделайте по ней клик левой клавишей мыши.

          В открывшемся окне введите адрес необходимой нам службы «http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx» в поле «URL-адрес» и нажмите клавишу «Enter». Введите «RBKServise» в поле «Имя веб-ссылки» и нажмите кнопку «Добавить ссылку».

          Перейдите в «Панель элементов» – группа «Общие» и сделайте клик правой клавишей мыши по этой группе. В появившемся контекстном меню выберите пункт «Выбрать элементы…».

          В появившемся окне «Выбор элементов панели элементов», выберете вкладку «Компоненты .Net Framework». Найдите компонент «DataGrid» из пространства имен «System.Windows.Forms» и поставьте напротив этого компонента галочку. Нажмите кнопку «ОК».

          После выполнения этих действий, в панели элементов, в группе «Общие» появится новый компонент «DataGrid».

    Добавьте его на форму и еще несколько элементов:

    • dateTimePicker1 – дата начала получения курсов валют;
    • dateTimePicker2 – дата конца получения курсов валют;
    • button1 – кнопка запуска получения данных.

    У вас получится примерно вот такая форма:

          Сделайте двойной клик по компоненту button1 и перейдите в автоматически созданный метод «button1_Click». Добавьте в него приведенный ниже код:

    RBKServise.DailyInfo di = new RBKServise.DailyInfo();
    
    System.DateTime DateFrom, DateTo;
    DateFrom = dateTimePicker1.Value;
    DateTo = dateTimePicker2.Value;
    
    //Вызываем GetCursDynamic для получения таблицы с курсами заданной валютой
    DataSet Ds = (System.Data.DataSet)di.GetCursDynamic(DateFrom, DateTo, "R01235");
    Ds.Tables[0].Columns[0].ColumnName = "Дата";
    Ds.Tables[0].Columns[1].ColumnName = "Вн.код валюты";
    Ds.Tables[0].Columns[2].ColumnName = "Номинал";
    Ds.Tables[0].Columns[3].ColumnName = "Курс";
    
    dataGrid1.SetDataBinding(Ds, "ValuteCursDynamic");

          Запустите ваш проект, нажав на клавишу «F5». Выберете интервал дат для получения данных и нажмите на единственную кнопку вашей формы. После получения данных у вас получится примерно вот такой вариант:

          Для получения списка кодов поддерживаемых валют данным сервисом, добавьте дополнительно два компонента на форму:

    • Button2 – кнопка запуска получения данных;
    • DataGrid – для вывода данных.

          Сделайте двойной клик левой клавишей мыши по компоненту «Button2» и перейдите в автоматически созданный метод «button2_Click». Добавьте в него следующий листинг:

    RBKServise.DailyInfo di = new RBKServise.DailyInfo();
    DataSet DSC = (System.Data.DataSet)di.EnumValutes(false); //Получаем список валют
    System.Data.DataTable tbl = DSC.Tables["EnumValutes"];
    dataGrid2.DataSource = tbl;

          Запустите ваш проект, нажав на клавишу «F5». Нажмите на кнопку получения кодов валют. Если вы все сделали правильно, то у вас получится примерно вот такой вариант:

          Здесь вы можете получить коды валют необходимых для запроса и описание по каждой.

    Дополнительную информацию о данной службе вы можете получить на официальном сайте «Банка России» по адресу http://www.cbr.ru/scripts/Root.asp?Prtid=DWS.

    Ссылка для скачивания примера: Яндекс.Диск

    Получение курсов валют с сайта “Банк России”: Справочник по C#

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9