我按照此链接http://www.c-sharpcorner.com/UploadFile/009464/crystal-report-with-parameter-in-Asp-Net-using-C-Sharp/在ASP.NET中设计了Crystal Report . 我需要将标签值传递给Crystal Reports,例如:
当试图点击按钮时我收到此错误:参数字段的类型和参数字段当前值不兼容 . 也许我定义了错误的参数或遗漏的东西 .
这是我的Crystal Reports参数:
如何使用ASP.NET,C#在Crystal Reports中传递参数?这是我的代码:
.aspx
<!-- Table with labels -->
<table align="center" width="50%" border="1">
<tr>
<td align="right">HALL ID : </td>
<td align="left"><asp:Label ID="Label7" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<td align="right">SEAT ID : </td>
<td align="left"><asp:Label ID="Label9" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<td align="right">COLOR : </td>
<td align="left" ><asp:Label ID="Label10" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<td align="right">PRICE : </td>
<td align="left"><asp:Label ID="Label11" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<td align="right">SEAT ROW : </td>
<td align="left"><asp:Label ID="Label12" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<td align="right">SEAT NUMBER : </td>
<td align="left"><asp:Label ID="Label13" runat="server" Text=""></asp:Label></td>
</table>
<!-- Print Button -->
<asp:Button ID="btnPrint" runat="server" Text="Print Ticket" OnClick="btnPrint_Click" />
.cs
ReportDocument rprt = new ReportDocument();
protected void btnPrint_Click(object sender, EventArgs e)
{
cs = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
rprt.Load(Server.MapPath("~/CrystalReport.rpt"));
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand("sp_select", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
rprt.SetDataSource(dt);
rprt.SetParameterValue("HallGroupID", Label7.Text);
rprt.SetParameterValue("ShowSeatId", Label9.Text);
rprt.SetParameterValue("Color", Label10.Text);
rprt.SetParameterValue("Price", Label11.Text);
rprt.SetParameterValue("SeatRow", Label12.Text);
rprt.SetParameterValue("SeatNumber", Label13.Text);
CrystalReportViewer1.ReportSource = rprt;
CrystalReportViewer1.DataBind();
}