我在使用左连接在水晶报表中显示数据时遇到问题。当我在Phpmyadmin使用“where no_barang = 2”时工作。但是在crystalreport中没有工作(数据是重复的,并显示所有数据)。
表“barang”
no_barang | nama_barang | harga_barang
1 | sepatu | 25000
2 | baju | 47000
表“pelanggan”
no_pelanggan | nama_pelanggan
1 | Sugeng Agung Suganda
2 | Babay Azifahmi
表“pembelian”
no_order | no_pelanggan | no_barang | jumlah
1 | 1 | 2 | 2
2 | 2 | 1 | 1
这是我在crystalreport中的代码
MySqlParameter p;
MySqlConnection conn = new MySqlConnection("database=cs_reportmultitables;server=localhost;uid=root;pwd=");
public View(string sTitle)
{
InitializeComponent();
try
{
DataSet ds = new DataSet();
string query;
p = new MySqlParameter("@no_order", MySqlDbType.String);
p.Value = sTitle;
query = "SELECT pembelian.no_order, pelanggan.nama_pelanggan, barang.nama_barang, barang.harga_barang, pembelian.jumlah FROM pembelian LEFT JOIN pelanggan ON pembelian.no_pelanggan = pelanggan.no_pelanggan LEFT JOIN barang ON pembelian.no_barang = barang.no_barang WHERE no_order=@no_order";
MySqlDataAdapter dscmd = new MySqlDataAdapter(query, conn);
dscmd.SelectCommand.Parameters.Add(p);
dscmd.Fill(ds);
RPT cryds = new RPT();
cryds.SetDataSource(ds.Tables[0]);
crystalReportViewer1.ReportSource = cryds;
crystalReportViewer1.Refresh();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
conn.Close();
}
尝试显示数字2,我的输出是:
no_order | nama_pelanggan | nama_barang | harga_barang | jumlah
1 | Sugeng Agung Suganda | sepatu | 25000 | 2
2 | Babay Azifahmi | sepatu | 25000 | 1
在“nama_barang”和“harga_barang”中复制,应该显示如下数据:
2 | Babay Azifahmi | sepatu | 25000 | 1
如果有人知道,请帮助我吗?