Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Исправить ошибку


Автор: Лена 11.3.2008, 12:44
Что я забыла сделать чтобы этот код работал:
Код

//пример из книги
 try
            {
                // Загружаем данные DataSet
                 DataSet ds = new DataSet();
                ds.ReadXml(@"C:\Users\Владелец\Documents\Visual Studio 2005\Projects\FirstPocketPCApp_CS\FirstPocketPCApp_CS\artists.xml");
                grdArtists.DataSource = ds.Tables[0]; //grdArtists имя DataGrid 
            }
            catch (Exception)
            {
                MessageBox.Show("Не могу загрузить данные в DataGrid!", this.Text);
            }


Все время срабатывает Exception. Путь к файлу artists.xml прописан правильно.

Автор: CYBERDREAM 11.3.2008, 13:00
Так а какой Exception выдает?
Код

catch(Exception ex)
{
    MessageBox.Show(ex.Message+"\n"+ex.StackTrace,"Ошибочка");
}

Автор: Лена 11.3.2008, 13:10
Вот на рисуночке... smile 

Автор: Experimenter 11.3.2008, 14:26
Лена, думается, дело в том, что у Вас приложение запускается на эмуляторе КПК, а у него там своя файловая система (тоже эмуляция), вот программа и пытается на эмуляторе найти путь к файлу настроек. Данный файл нужно скопировать на эмулятор и прописать к нему корректный путь в своей программе. Я прописываю так: @"Program Files\MyApp\settings.xml".

Автор: Лена 11.3.2008, 14:49
Цитата(Experimenter @  11.3.2008,  14:26 Найти цитируемый пост)
Данный файл нужно скопировать на эмулятор и прописать к нему корректный путь в своей программе.


Подскажите, пожалуйста, как создать папку на эмуляторе и скопировать туда нужный мне файл *.xml?

Автор: Experimenter 11.3.2008, 15:15
Если приложение запускается из студии, то папка уже должна быть создана на эмуляторе, посмотрите каталог Program Files.
Скопировать можно двумя способами:
1. Через Активсинк, подробности пока опущу
2. Эмулятор КПК закрываем. Меню Visual Studio 2005: Tools -> Options, в окне опций находим вкладку Device Tools -> Devices. Появляется список доступных устройств, выбираем нужное, жмем кнопку Properties. В появившемся окне жмем кнопку Emulator Options... Появляется еще одно окошко, в котором на вкладке General выбираем нижний текстбокс (Shared Folders), где указываем путь к папке на компьютере. Запускаем эмулятор, в меню эмулятора File -> Configure... Должно появиться окошко, аналогичное тому, что было в студии, опять же на вкладке General смотрим нижний текстбокс, указанная папка уже должна там светиться. Далее в КПК: File Explorer -> Storage Card, это и есть папка, при помощи которой можно производить файловый обмен между десктопом и эмулятором. Надеюсь, что не очень запутанно объяснил.

Автор: Лена 11.3.2008, 16:13
Огромное спасибо!  smile 
Работает!  smile 

Цитата(Experimenter @  11.3.2008,  15:15 Найти цитируемый пост)
 Должно появиться окошко, аналогичное тому, что было в студии, опять же на вкладке General смотрим нижний текстбокс, указанная папка уже должна там светиться.


В этом месте папка не засветилась (было пусто), поэтому я ее принудительно прописала в настройках эмулятора тот же путь что и в настройках студии.

Далее перенесла через Storage Card файл xml и изменила код:
ds.ReadXml(@"Program Files\FirstPocketPCApp_CS\artists.xml"); все заработало, вижу данные в гриде.  smile 

Я читаю эту книгу: http://jeu.kiev.ua/2007/02/08/programmirovanie_kpk_i_smartfonov_na_net_compact_framework.html 
О таких тонкостях, как перенос файла в этом примере, автор  умолчал. Спасибо за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)