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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataList - преобразование объектов данных в DataSet? хочется проще.. 
V
    Опции темы
Exception
Дата 31.12.2005, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

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



Пишу я сайт с БД. Библиотеку, работающую с БД, сделал и стал верстать странички. Возник соблазн заюзать DataList со смарт-тегами. Да вот есть проблема. Мой dbLevel возвращает все в виде объектов данных (моих собственных), а DataList просит датасета. Итак, есть два выхода:
1. Заставить dbLevel возвращать датасет.
2. Преобразовывать в коде страницы массив Item'ов в датасет.
Хотелось бы второе, только как это осуществить? Есть ли что-то типа DataSetSerializer? Или надо перегонять в XML, а из него в DS? Как?
PM   Вверх
mr.DUDA
Дата 31.12.2005, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Exception @ 31.12.2005, 02:28)
Или надо перегонять в XML, а из него в DS? Как?

Можно попробовать сериализовать в XML свой объект и на основе этого XML создать XSD-схему, по которой в свою очередь - типизированный датасет.


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 31.12.2005, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

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



А как это выглядит в коде? Я в XSD ни бум-бум smile Это надо в дизайн-тайме создавать? Или прямо в рантайме? Предположим, есть класс Item
Код
Public Class Item
Private _name As String, _id As Guid
Public Property Name
Get
Return _name
End Get
Set(value As String)
_name = value
End Set
End Property
'то же с Id

. Как его перегнать в DS? Хотелось бы примерчик кода smile
Добавлено @ 12:38
Всмысле не его, а их массив smile
PM   Вверх
mr.DUDA
Дата 31.12.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



XSD-схема удобна тем, что по ней можно создать типизированный датасет, но я посмотрел - можно решить твою задачу и без схемы. Вот пример (вместо Item у меня Order, типа заказ):
Код
using System;
using System.Data;
using System.IO;
using System.Collections.Generic;
using System.Xml.Serialization;

public class Order
{
    public string address;
    public int amount;
    public Order(string address, int amount)
    {
        this.address = address;
        this.amount = amount;
    }
    protected Order() { } // для десериализации
}

class TestApp
{
    static void Main(string[] args)
    {
        Order[] orders = 
        {
            new Order("order1 addr", 10),
            new Order("order2 addr", 20),
            new Order("order3 addr", 30),
        };

        // сериализация в XML
        XmlSerializer ser = new XmlSerializer(typeof(Order[]));
        MemoryStream stream = new MemoryStream();
        ser.Serialize(stream, orders);
        stream.Seek(0, SeekOrigin.Begin);

        // зачитка XML в датасет
        DataSet ds = new DataSet();
        ds.ReadXml(stream);

        // пробежимся по всем таблицам, строкам и колонкам датасета
        foreach(DataTable tb in ds.Tables)
        {
            Console.WriteLine("Table {0} rows:", tb.TableName);
            foreach(DataRow row in tb.Rows)
            {
                Console.WriteLine();
                foreach(DataColumn col in tb.Columns)
                    Console.Write("{0}:{1}; ", col.ColumnName, row[col]);
            }
        }

    }
}

Добавлено @ 15:55
З.Ы. когда переименовался ? smile


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 31.12.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

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



Цитата(mr @ 31.12.2005, 16:52)
XSD-схема удобна тем, что по ней можно создать типизированный датасет

Да он тут мне и не нужен smile
Цитата(mr @ 31.12.2005, 16:52)
Вот пример

Спасибо, идею понял. +1 smile
Добавлено @ 16:00
Цитата(mr @ 31.12.2005, 16:52)
когда переименовался ?

Вчера smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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