0

我是 Windows 桌面应用程序开发的新手。

我想在我的应用程序中打印账单,我使用了报表查看器控件并放置了两个标签来显示账单编号和当事人名称。

我正在 C# 中的代码隐藏文件中创建数据集。

我将数据集单元格的值分配给标签的文本属性。我的代码是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;


namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{
    OleDbConnection cn;
    OleDbCommand cmd;
    OleDbDataAdapter da;
    DataSet ds;

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Bill\\dbBill.accdb");
        string query = "select A.BillNo,A.BillType,A.TaxType,A.PartyName,B.Desc,B.Desc,B.HSNCode,B.Qty,B.Rate,(B.Qty*B.Rate) as Amount " +
                       "from BillMaster A inner join BillDetail B on B.BillNo=A.BillNo";
        cn.Open();
        cmd = new OleDbCommand(query, cn);
        da = new OleDbDataAdapter(cmd);
        ds = new DataSet();
        da.Fill(ds);
        cn.Close();
        // TODO: This line of code loads data into the 'dbBillDataSet.BillDetail' table. You can move, or remove it, as needed.
        this.BillDetailTableAdapter.Fill(this.dbBillDataSet.BillDetail);

        this.reportViewer1.RefreshReport();


    }

    private void reportViewer1_Load(object sender, EventArgs e)
    {



        lblBillNo.Text = ds.Tables[0].Rows[0]["BillNo"].ToString();
        lblParty.Text = ds.Tables[0].Rows[0]["PartyName"].ToString();
    }
}
}

如何将数据集值分配给放置在报表查看器控件中的控件。请帮我。提前致谢。

4

2 回答 2

1

您将无法DataSet访问ds. reportviewr_load我建议您制作 a function()which 将返回 aDataSetfunction()reportviewr_load.

于 2013-03-06T10:33:32.977 回答
0
private DataSet YourData()
{
cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Bill  \\dbBill.accdb");
string query = "select     
  A.BillNo,A.BillType,A.TaxType,A.PartyName,B.Desc,B.Desc,B.HSNCode,B.Qty,B.Rate,
  (B.Qty*B.Rate) as Amount " +

 "from BillMaster A inner join BillDetail B on B.BillNo=A.BillNo";
 cn.Open();
 cmd = new OleDbCommand(query, cn);
 da = new OleDbDataAdapter(cmd);
 ds = new DataSet();
 da.Fill(ds);
 cn.Close();
 return ds;
} 
于 2013-03-06T11:41:27.323 回答