using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
public partial class ExportReservationInfo : System.Web.UI.Page
{
#region Events
protected void Page_Load(object sender, EventArgs e)
{
lblMsg.Text = "";
if (Page.IsPostBack)
{
}
}
protected void btnExportToCSV_Click(object sender, EventArgs e)
{
string strReservationId = txtReservationId.Text.Trim();
DataSet ds;
try
{
int ReservationId = Convert.ToInt32(strReservationId);
ds = ExecuteQuery(ReservationId);
//Export to CSV
ExportToSpreadsheet(ds, "ReservationInfo");
}
catch (Exception ex)
{
lblMsg.Text = "Please enter a valid Reservation Id";
}
}
protected void btnExportToXML_Click(object sender, EventArgs e)
{
string strReservationId = txtReservationId.Text.Trim();
DataSet ds;
try
{
int ReservationId = Convert.ToInt32(strReservationId);
ds = ExecuteQuery(ReservationId);
//Export to XML
ExportToXml(ds, "ReservationInfo");
}
catch (Exception ex)
{
lblMsg.Text = "Please enter a valid Reservation Id";
}
}
#endregion
#region Methods
private DataSet ExecuteQuery(int ReservationId)
{
DataSet dsResult = new DataSet("ReservationInfo");
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
try
{
con = new SqlConnection(con.ConnectionString);
con.Open();
SqlCommand command = new SqlCommand("spGetCSIAttendeeInfo", con);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@ReservationRoomID", ReservationId);
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(dsResult);
//foreach (DataTable dt in dsResult.Tables) { }
//foreach (DataRow dr in dsResult.Tables[0].Rows) {}
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
if (con != null)
con.Dispose();
}
return dsResult;
}
private void ExportToXml(DataSet ds, string name)
{
try
{
using (var memoryStream = new MemoryStream())
{
using (TextWriter streamWriter = new StreamWriter(memoryStream))
{
var xmlSerializer = new XmlSerializer(typeof (DataSet));
xmlSerializer.Serialize(streamWriter, ds);
//return Encoding.UTF8.GetString(memoryStream.ToArray());
var docresult = Encoding.UTF8.GetString(memoryStream.ToArray());
Response.Write(docresult);
Response.ContentType = "text/xml; charset=utf-8";
Response.AddHeader("Content-Disposition", "attachment; filename=" + name + ".xml");
Response.End();
}
}
}
catch (Exception ex)
{
lblMsg.Text = "An error occured processing your request" + ex.Message;
}
}
private void ExportToSpreadsheet(DataSet ds, string name)
{
StringBuilder sb = new StringBuilder();
HttpContext context = HttpContext.Current;
try
{
context.Response.Clear();
foreach (DataTable table in ds.Tables)
{
foreach (DataColumn column in table.Columns)
{
sb.Append(column.ColumnName + ",");
}
sb.AppendLine();
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < table.Columns.Count; i++)
{
sb.Append(row[i].ToString().Replace(",", ";") + ",");
}
sb.AppendLine();
}
sb.AppendLine();
sb.AppendLine();
}
context.Response.Write(sb.ToString());
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
context.Response.End();
}
catch (Exception ex)
{
lblMsg.Text = "An error occured processing your request" + ex.Message;
}
}
private void ExportToSpreadsheet(DataTable table, string name)
{
try
{
HttpContext context = HttpContext.Current;
context.Response.Clear();
foreach (DataColumn column in table.Columns)
{
context.Response.Write(column.ColumnName + ",");
}
context.Response.Write(Environment.NewLine);
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < table.Columns.Count; i++)
{
context.Response.Write(row[i].ToString().Replace(",", ";") + ",");
}
context.Response.Write(Environment.NewLine);
}
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
context.Response.End();
}
catch (Exception ex)
{
lblMsg.Text = "An error occured processing your request" + ex.Message;
}
}
#endregion
}
Comments