Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/10: Рейтинг темы: голосов - 10, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.02.2009
Сообщений: 3

Добавление записи вместо обновления Dataset.WriteXml

06.10.2009, 10:47. Показов 2147. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При загрузке формы делаю так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ds = new DataSet("Data");
try
{
  ds.ReadXml("data.xml");
}
catch (Exception ex)
{
  s.Tables.Add("settings");
  DataTable dtb = ds.Tables["settings"];
 
  dtb.Columns.Add("lg", System.Type.GetType ("System.String"));
  dtb.Columns.Add("ps", System.Type.GetType("System.String"));
  DataRow drw = dtb.NewRow();
  drw["lg"] = "login";
  drw["ps"] = "password";
  dtb.Rows.Add(drw);
  ds.WriteXml("data.xml");
}
finally
{
  ds.ReadXml("data.xml");
  DataTable table = ds.Tables["settings"];
  DataRow[] rows = table.Select();
  tbLogin.Text = (string)rows[0]["lg"];
  tbPass.Text = (string)rows[0]["ps"];
}
Потом когда я пытаюсь сохранить:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
tbLogin_TextChanged(object sender, EventArgs e)
{
  if (bEnableUpdate == true)
  {
    DataTable dtb = ds.Tables["settings"];
    DataRow []drw = dtb.Select();
    object[] items = drw[0].ItemArray;
    items[0] = tbLogin.Text;
    drw[0].ItemArray = items;
    ds.AcceptChanges();
    ds.WriteXml("data.xml");
  }
}
Оно добавляет строку в место того чтобы её изменить:


XML
1
2
3
4
5
6
7
8
9
10
11
12
 
<?xml version="1.0" standalone="yes" ?> 
 <Data>
  <settings>
    <lg>logi</lg> 
    <ps>password</ps> 
   </settings>
  <settings>
    <lg>login</lg> 
    <psr>password</ps> 
   </settings>
  </Data>
Что уменя неправильно в коде?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.10.2009, 10:47
Ответы с готовыми решениями:

Добавление записи в Dataset, множество таблиц
Здравствуйте. У меня база представляет собой xml файл, в нем порядка 10 таблиц и одна общая которая содержит коды по которым из других...

CommandBuilder вместо обновления записей вставляет новые записи
пытаюсь обновить записи которые в datagridView, но CommandBuilder вставляет записи, а не обновляет существующие: using (OleDbDataAdapter...

Добавление записи вместо удаленной
В моей программе можно добавлять и удалять записи в Mysql базу, к примеру у меня заведено 10 строчек 1 2 3 4 5 6 7 8

1
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
07.10.2009, 05:06
Дважды читаете файл в DataSet. Сначала в try, а затем finally. Поэтому две таблицы в датасете.

З.Ы. Если честно, то это не код, а то что лежит в том месте, через которое он же и реализован.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.10.2009, 05:06
Помогаю со студенческими работами здесь

Добавление записей в DataSet
Хлопцы подскажите как задать индекс строке добавления данных? выдается сообщение что данная строка уже присутствует в таблице: ...

ListView: добавление записи, выбор записи, удаление записи
на форме есть три текст бокса: textbox1(имя), textbox2(фамилия), textbox3(отчество), textbox4(выбранное) кнопка Button1(добавить),...

Добавление полей связи в таблицы DataSet
Подскажите, пожалуйста, как добавить поля связи в таблицы DataSet. Имеется XML-файл - дерево представлено на миниатюре. Загружаю...

Вставка записи в DataSet
Нужно добавить строку в датасет, в таблице есть инкремент(генератор), база в SQL Server Код такой: датасет.insert; ...

Удаление записи из DataSet
Пытаюсь удалить из DataSet несколько строк. Все нормально если удаление идет от последний записи к первой, но не наоборот. Пишу типа ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru