1

aspx からストアド プロシージャを呼び出してファイルをエクスポートし、データをファイルに保存したいと考えてい.txtます。各列には、設定が必要な特定の列の長さが必要です。以下は私のコードですが、プログラムを実行すると、出力には列名のみが表示され、データは表示されません。プログラムが行ステートメントを読み取っていないようです。私を助けてください

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();
            }
    }
}
4

2 に答える 2