Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с реализацией XML-схемы и состояния, Есть DataSet на XML-схеме пишущий вXML  
:(
    Опции темы
Нов
Дата 19.8.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 8.7.2008
Где: Украина г. Харько в

Репутация: нет
Всего: нет



 Доброго времени суток. Возникла проблема, может кто сталкивался... 
   Суть проблемы - есть XML-схема, на основе которой строиться DataSet с двумя DataTable (Department, Employee). 
 Таблицы связаны вот так:

Код

 </xs:complexType>
    <xs:key name="DepartmentKey1" msdata:PrimaryKey="true">
      <xs:selector xpath="." />
      <xs:field xpath="mstns:DepID" />
    </xs:key>
    <xs:key name="DepartmentKey2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Employes" />
      <xs:field xpath="mstns:EmployeeID" />
    </xs:key>
  </xs:element>

  И тут ньюанс - добавление во второую таблицу должно идти строго по IDDepartment. Таблицы связаны с GridView-ми, ADO сохранен в состоянии, 
Код

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                NewD = new DataSet();
                Session["Dataset"] = NewD;                
                NewD.ReadXmlSchema("Departments.xsd");
            }
            GridViewDataBind();
        }

        private void GridViewDataBind()
        {
            NewD = Session["Dataset"] as DataSet;
            NewD.Clear();

            NewD.ReadXml("test.xml", XmlReadMode.Auto);
            GridViewDepartament.DataSource = NewD.Tables["Department"];

            GridViewEmployee.DataSource = NewD.Tables["Employes"];
            GridViewEmployee.DataBind();
            GridViewDepartament.DataBind();
            Session["Dataset"] = NewD;
     }

И вот тут проблема. С каждым обращением к клиенту ключевые поля (см {XML} начинают прыгать. Т.е. по загрузке было 3 записи.
Их ID
 При           После любого
первом      обращения
запуске      к серверу
 -0                -3
 -1                -4
 -2                -5

Я понимаю, что тут проблема состояния, но с какой стороны к ней подойти  smile 
Буду благодарен за помощь, в том числе и указание, в какую сторону двигаться. 

 

Это сообщение отредактировал(а) Нов - 19.8.2008, 09:42
PM MAIL ICQ   Вверх
Idsa
Дата 19.8.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Думаю, DataSet здесь непричем. Такое ощущение, что в базе есть какой-то хитрый тригер.
И еще странно, что ID растут в отрицательную сторону.



--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Нов
Дата 19.8.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 8.7.2008
Где: Украина г. Харько в

Репутация: нет
Всего: нет



Цитата(Idsa @ 19.8.2008,  14:37)
Думаю, DataSet здесь непричем. Такое ощущение, что в базе есть какой-то хитрый тригер.
И еще странно, что ID растут в отрицательную сторону.

 smile  smile 
Цитата

Думаю, DataSet здесь непричем.

DataSet реализован на основе ХМL схемы. И не зависит от БД.
Вот она(схема) целиком. 

Код

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Departments" targetNamespace="http://tempuri.org/Departments.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/Departments.xsd" xmlns:mstns="http://tempuri.org/Departments.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="Department">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="DepID" type="xs:unsignedInt" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="0" msdata:AutoIncrementStep="1" />
        <xs:element name="DepN" type="xs:unsignedInt" />
        <xs:element name="DepShortName" type="xs:string" />
        <xs:element name="DepName" type="xs:string" />
        <xs:element name="EMail" type="xs:string" />
        <xs:element name="DepPlannedN" type="xs:unsignedInt" />
        <xs:element name="Employes" type="Employee" />
      </xs:sequence>
    </xs:complexType>
    <xs:key name="DepartmentKey1" msdata:PrimaryKey="true">
      <xs:selector xpath="." />
      <xs:field xpath="mstns:DepID" />
    </xs:key>
    <xs:key name="DepartmentKey2" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Employes" />
      <xs:field xpath="mstns:EmployeeID" />
    </xs:key>
  </xs:element>

  <xs:complexType name="Employee">
    <xs:sequence>
      <xs:element name="EmployeeID" type="xs:unsignedInt" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="0" msdata:AutoIncrementStep="1" nillable="false" />
      <xs:element name="FirstName" type="xs:string" />
      <xs:element name="LastName" type="xs:string" />
      <xs:element name="EMail" type="xs:string" />
      <xs:element name="BirthDate" type="xs:date" />
      <xs:element name="Citizenship" type="xs:boolean" />
      <xs:element name="PhoneNumber" type="xs:string" />
      <xs:element name="Sex" type="xs:string" />
      <xs:element name="InsuranceNumber" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

Жирным я выделил участок, отвечающий за связь таблиц, автоинкремент которого и совершает такие скачки. Впрочем остальные автоинкременты по ключевым полям тоже растут со скачками. 

Цитата

Такое ощущение, что в базе есть какой-то хитрый тригер.

Тут нет базы - запись(чтение) идут в XML файл. 

Цитата

И еще странно, что ID растут в отрицательную сторону.

 smile 
В этом моя вина. Это я их так и обозначил... в жизни они растут в положительную сторону. 

Спасибо за ответ. 


Это сообщение отредактировал(а) Нов - 19.8.2008, 19:19
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.