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


Автор: gambit 30.1.2010, 23:58
Вечер добрый. Столкнулся с задачей, сделать экспорт из таблицы в XML файл. Вопросов 2, как вообще провести экспорт и как задать атрибуты?

Автор: A5uKa 31.1.2010, 01:52
У меня не совсем такая, но похожая проблема до сих пор до конца не решена.
Нужно было перевести данные из таблицы в базе на XML DataSource, но я думаю этот код может помочь.
Делаю так :

Код

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
da.Dispose();
ds.DataSetName = "Menus";
ds.Tables[0].TableName = "MyTable";
DataRelation relation = new DataRelation("ParentChild",
ds.Tables["MyTable"].Columns["ID_Parent"],
ds.Tables["MyTable"].Columns["ID_Item"], true);
  
relation.Nested = true;
ds.Relations.Add(relation);
        
        XmlDataSource1.Data = ds.GetXml();
        XmlDataSource1.DataBind();
        Menu3.DataSource = XmlDataSource1;

Автор: gambit 31.1.2010, 14:10
Пытаюсь сделать вот так

Код

var sd = FormationTabl.loadAssessment(); // получаем объект DataTable
            
            try
            {
                XmlWriter writer = new XmlTextWriter(@"c:\serializeExample.xml", System.Text.Encoding.UTF8);
                XmlSerializer serializer = new XmlSerializer(typeof(DataTable));
                serializer.Serialize(writer, sd);
                writer.Close();
                MessageBox.Show(@"Объект успешно сериализован", "Операция выполнена",
                   MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


Падаем по ошибке на строке serializer.Serialize(writer, sd);
Ошибка:
Message: Ошибка при создании документа XML.
InnerException: Не удалось сериализовать DataTable. Не указано имя DataTable.

Где и какое имя нужно указать?

Автор: tol05 31.1.2010, 16:26
DataTable.WriteXml(), DataTable.ReadXml() не подходят?
http://msdn.microsoft.com/ru-ru/library/fs0z9zxd.aspx

Автор: Sfate 31.1.2010, 16:37
'DataTable', как я понимаю, эт собственно, 'DataGridView'...
как создается и заполняется?

Автор: gambit 31.1.2010, 20:56
Цитата(Sfate @  31.1.2010,  16:37 Найти цитируемый пост)
'DataTable', как я понимаю, эт собственно, 'DataGridView'...

собственно это разные классы

Цитата(Sfate @  31.1.2010,  16:37 Найти цитируемый пост)
как создается и заполняется? 

для данной задачи, это не важно))


tol05, спасибо, посмотрю

Автор: gambit 31.1.2010, 23:31
tol05, это тоже не сработало, по той же причине что и мой код.

Разобрался, оказывается все тупо до безумия)))
Имя задается в конструкторе DataTable, после этого работают оба варианта, и ваш и мой, но ваш конечно предпочтительнее, ибо стандартный.
Всем спасибо, вопрос закрыт.

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