繁体   English   中英

如何从.Net C#和SQL服务器windows应用导出PDF

[英]How to export PDF from .Net C# and SQL server windows application

我想从我的桌面应用程序导出 pdf 文件。 我尝试了以下代码快照

        private void button1_Click(object sender, EventArgs e)
        {
            Document doc = new Document();
            PdfWriter.GetInstance(doc, new FileStream("myPdf.pdf",FileMode.Create));
            doc.Open();
            SqlConnection con = new SqlConnection(connectionString);
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }

            SqlCommand cmd = new SqlCommand("SELECT b.date,a.TotalIncome,b.TotalExpense FROM (SELECT c.date, sum(c.amout) as TotalIncome FROM (SELECT name FROM category_tbl where type = 'Income') a, transactions c where c.type = a.name group by c.date) a, (SELECT c.date, sum(c.amout) as TotalExpense FROM (SELECT name FROM category_tbl where type = 'Expense') a, transactions c where c.type = a.name group by c.date) b", con);
            SqlDataReader dr = cmd.ExecuteReader();


            if (dr.Read())
            {
                Paragraph p1 = new Paragraph(dr.GetValue(0).ToString());
                Paragraph p2 = new Paragraph(dr.GetValue(1).ToString());
                Paragraph p3 = new Paragraph(dr.GetValue(2).ToString());
                doc.Add(p1);
                doc.Add(p2);
                doc.Add(p3);
                doc.Close();
                MessageBox.Show("PDF create");
            }



        }

然后我得到以下 output。这里我只得到 SQL output 中的第一行。

5/16/2022 12:00:00 AM
12000
120

但我需要获取表中来自 SQL 查询的所有结果,如下所示

日期 收入 花费
5/16/2022 上午 12:00:00 12000 120
5/28/2022 上午 12:00:00 15000 145
6/02/2022 上午 12:00:00 3200 60
. . .
. . .

所以,我想知道如何更新获得成就的代码

谢谢!!!

您的代码只执行 reader.read() 一次,这意味着您将只处理第一行。 尝试以这种方式使用它

while(dr.Read())
{
   Paragraph p1 = new Paragraph(dr.GetValue(0).ToString());
   Paragraph p2 = new Paragraph(dr.GetValue(1).ToString());
   Paragraph p3 = new Paragraph(dr.GetValue(2).ToString());
   doc.Add(p1);
   doc.Add(p2);
   doc.Add(p3);
}
doc.Close();
MessageBox.Show("PDF create");

还可以考虑为 sql 连接添加 using 语句,或在末尾添加 con.Close() 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM