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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как экпортировать данные с GridView или DataTable 
:(
    Опции темы
Feller
Дата 25.5.2011, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как экпортировать данные с GridView или  DataTable в xml на диск c? 
PM MAIL   Вверх
jonie
Дата 25.5.2011, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



например так
Код

<%@ Page Language="C#" AutoEventWireup="true" ContentType="text/xml" %>

<%@ Import Namespace="System.Xml" %>

<script runat="server">
  protected void Page_Load(object source, EventArgs e)
  {
    XmlDocument doc = new XmlDocument();

    // XML declaration
    XmlNode declaration = doc.CreateNode(XmlNodeType.XmlDeclaration, null, null);
    doc.AppendChild(declaration);

    // Root element: article
    XmlElement root = doc.CreateElement("article");
    doc.AppendChild(root);

    // Sub-element: author
    XmlElement author = doc.CreateElement("author");
    author.InnerText = "Faisal Khan";
    root.AppendChild(author);

    // Attribute: isadmin
    XmlAttribute isadmin = doc.CreateAttribute("isadmin");
    isadmin.Value = "true";
    author.Attributes.Append(isadmin);
    
    // Sub-element: title
    XmlElement title = doc.CreateElement("title");
    title.InnerText = "Sample XML Document";
    root.AppendChild(title);

    // Sub-element: body (CDATA)
    XmlElement body = doc.CreateElement("body");
    XmlNode cdata = doc.CreateCDataSection("This is the body of the article.");
    body.AppendChild(cdata);
    root.AppendChild(body);
    
    doc.Save(Response.OutputStream);
  }
</script>


по аналогии формируете ваш XML и отдаете юзеру. Только смотрите чтобы ContentType был нужный, ну и всякие другие вещи, вроде имени файла сделать можно, через установку Responce...

или можно сделать ASHX страничку и в коде вписать примерно такое:
Код

public void ProcessRequest(HttpContext context)
        {
....
            context.Response.Buffer = false;
            context.Response.AddHeader("Connection", "close");
            context.Response.ContentType = "application/octet-stream";
            context.Response.AddHeader("Cache-Control", "public, must-revalidate, post-check=0, pre-check=0, max-age=0");
            context.Response.AddHeader("Pragma", "public");

            using (var attachment = GetAttachment(context))
            {

                if (context.Request.Browser.Browser == "IE")
                {
                    var fileName = HttpUtility.UrlPathEncode(attachment.FileName);
                    context.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
                }
                else
                {
                    context.Response.AddHeader("Content-Disposition",
                                               string.Format("attachment;filename=\"{0}\"", attachment.FileName));
                }

                using (var fileContentStream = attachment.Stream)
                {
                    context.Response.AddHeader("Content-Length", attachment.Stream.Length.ToString());

                    byte[] buffer = new byte[4096];
                    int byteSeq = 0;
                    while ((byteSeq = fileContentStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        context.Response.OutputStream.Write(buffer, 0, byteSeq);
                    }
                    context.Response.Flush();
                    context.Response.End();
                }
            }
        }
}



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
VirusUZ
  Дата 4.7.2011, 16:04 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

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



 smile 
Код

dgridview1.WriteXmlsSchema(filesch);
dgridview1.WriteXmlFile(filexml)


Win App

Это сообщение отредактировал(а) VirusUZ - 4.7.2011, 16:06
--------------------
Virus
PM MAIL   Вверх
Feller
Дата 19.7.2011, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



VirusUZ, 
Мне надо было экспортировать данные на клиента.
Вот как надо , может кому-нибудь пригодится 
Код

   Sub Export(ByVal table As DataTable, ByVal filename As String, _
        ByVal sepChar As String)
        Try
            Dim writer As System.IO.StringWriter = New System.IO.StringWriter()
            ' first write a line with the columns name
            Dim sep As String = " "
            Dim builder As New System.Text.StringBuilder
            For Each col As DataColumn In table.Columns
                builder.Append(sep).Append(col.ColumnName)
                sep = sepChar
            Next
            writer.WriteLine(builder.ToString())

        
            For Each r As DataRow In table.Rows
                writer.WriteLine(String.Join(";", (From cell In r.ItemArray Select (cell.ToString)).ToArray()))
            Next

            'csv
            Response.Clear()
            Response.Buffer = True
            Response.ContentType = "Application/octet-stream"
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + DateTime.Today.ToString("dd-MM-yyyy") + ".txt")
            Response.ContentEncoding = Encoding.Unicode
        
            ' Dim o As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(writer)
            Response.Write(writer.ToString())
            Response.End()
        Finally
            ' If Not writer Is Nothing Then writer.Close()
        End Try
    End Sub


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

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

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

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


 




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


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

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