Ich möchte eine Datei exportieren, indem Sie eine gespeicherte Prozeduren von aspx aufrufen und ich möchte die Daten in eine .txt
Datei speichern. Jede Spalte muss eine bestimmte Spaltenlänge haben, die festgelegt werden muss. Unten ist mein Code, aber wenn ich das Programm ausführe, zeigt die Ausgabe nur den Spaltennamen an ... und es werden keine Daten angezeigt. Es sieht so aus, als würde das Programm die Zeilenanweisung nicht lesen. Bitte helfen Sie mirExportieren von Daten aus gespeicherten Prozedur in TXT-Datei mit aspx
protected void Page_Load(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
string str = "Server=KABS;Database=HOT;uid=sa;pwd=DDD;Connection Timeout=6000";
if (Request.QueryString["ProcessName"] != null)
{
using (SqlConnection con = new SqlConnection(str))
{
if (Request.QueryString["ProcessName"].ToString().Equals("Ebill"))
{
using (SqlCommand cmd = new SqlCommand("AR_Ebill_claim", con))
{
cmd.CommandType = CommandType.StoredProcedure;
string compcode = null;
DateTime dateFrom = DateTime.Now;
DateTime dateTo = DateTime.Now;
string episType = null;
string debtorCode = null;
if (Request.QueryString["compcode"] != null)
{
if (string.IsNullOrEmpty(Convert.ToString(Request.QueryString["compcode"])))
{
compcode = null;
}
else
{
compcode = Convert.ToString(Request.QueryString["compcode"]);
}
}
if (Request.QueryString["dateFrom"] != null)
{
DateTime dtFrom = DateTime.Parse(Request.QueryString["dateFrom"]);
dtFrom.ToString("dd-MMM-yyyy");
if (dtFrom == null)
{
dateFrom = DateTime.Now;
}
else
{
dateFrom = dtFrom;
}
}
if (Request.QueryString["dateTo"] != null)
{
DateTime dtTo = DateTime.Parse(Request.QueryString["dateTo"]);
dtTo.ToString("dd-MMM-yyyy");
if (dtTo == null)
{
dateTo = DateTime.Now;
}
else
{
dateTo = dtTo;
}
}
if (Request.QueryString["episType"] != null)
{
if (string.IsNullOrEmpty(Convert.ToString(Request.QueryString["episType"])))
{
episType = null;
}
else
{
episType = Convert.ToString(Request.QueryString["episType"]);
}
}
if (Request.QueryString["debtorCode"] != null)
{
if (string.IsNullOrEmpty(Convert.ToString(Request.QueryString["debtorCode"])))
{
debtorCode = null;
}
else
{
debtorCode = Convert.ToString(Request.QueryString["debtorCode"]);
}
}
cmd.Parameters.Add("@compcode", SqlDbType.VarChar, 100);
cmd.Parameters["@compcode"].Value = compcode;
cmd.Parameters.Add("@dateFrom", SqlDbType.SmallDateTime);
cmd.Parameters["@dateFrom"].Value = dateFrom;
cmd.Parameters.Add("@dateTo", SqlDbType.SmallDateTime);
cmd.Parameters["@dateTo"].Value = dateTo;
cmd.Parameters.Add("@episType", SqlDbType.VarChar, 40);
cmd.Parameters["@episType"].Value = episType;
cmd.Parameters.Add("@debtorCode", SqlDbType.VarChar, 100);
cmd.Parameters["@debtorCode"].Value = debtorCode;
con.Open();
//cmd.ExecuteNonQuery();
//gdBill.EmptyDataText = "No Records Found";
//gdBill.DataSource = cmd.ExecuteReader();
//gdBill.DataBind();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = cmd;
da.Fill(dt);
string txt = string.Empty;
if (dt.Columns.Count > 0)
{
foreach (DataColumn column in dt.Columns)
{
//Add the Header row for Text file.
txt += column.ColumnName + "\t\t";
}
}
//Add new line.
txt += "\r\n";
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
//Add the Data rows.
txt += row[column.ColumnName].ToString() + "\t\t";
}
//Add new line.
txt += "\r\n";
}
}
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=E-Billing.txt");
Response.Charset = "";
Response.ContentType = "application/text";
Response.Output.Write(txt);
Response.Flush();
Response.End();
Cursor.Current = Cursors.AppStarting;
}
}
//cmd.Dispose();
con.Close();
}
}
}
Ist das 'dt' von der gespeicherten Prozedur gefüllt wird? –