使用c#和ms-access和dataset时的crystal report database登录提示

时间:2016-09-10 12:59:23

标签: c# ms-access crystal-reports

我正在使用crystal report并在我的windowsform应用程序中将数据集绑定到它。 我的数据集是从ms-access数据库获取数据,它的查询工作很酷。 我没有为我的数据库或数据集或任何其他东西设置任何登录信息,仍然在报告加载时请求登录。 在登录页面中,服务器名称是我的数据集的名称,所有其他字段都是空的。 ms-access 2016 - visual-studio 2015 - crystal report 13.0.14

我的代码

ReportDocument cryRpt = new ReportDocument();
            cryRpt.Load("D:/c#/AttendanceApp/AttendanceApp\\CrystalReport_Work.rpt");
            crystalReportViewer1.ReportSource = cryRpt;
            crystalReportViewer1.Refresh();

我的查询

SELECT        p.Personal_FingerId, p.Personal_Name, p.Personal_Family, w.Work_Date, Format(MIN(CDate(w.Work_Time)), 'hh:nn') AS Time_Start, Format(MAX(CDate(w.Work_Time)), 'hh:nn') AS Time_Finish
FROM            (Table_Personal p INNER JOIN
                         Table_WorkUser w ON p.Personal_FingerId = w.Personal_FingerId)
GROUP BY p.Personal_Name, p.Personal_Family, p.Personal_FingerId, w.Work_Date
ORDER BY w.Work_Date

2 个答案:

答案 0 :(得分:0)

我暂时无法处理水晶报告,但我非常确定您必须单击WinForm中的Crystal Report Viewer对象并将属性更改为不需要登录。另外,在引用文件路径时使用以下约定:@" C:\ directory \ word.txt"为你的cryRpt.Load(@" D:\ c#\ AttendanceApp \ AttendanceApp \ CrystalReport_Work.rpt")。

答案 1 :(得分:0)

请尝试以下示例,确保设置数据源。

private void Form1_Load(object sender, EventArgs e)
{
CustomerReport crystalReport = new CustomerReport();
Customers dsCustomers = GetData();
crystalReport.SetDataSource(dsCustomers);
this.crystalReportViewer1.ReportSource = crystalReport;
this.crystalReportViewer1.RefreshReport();
}

private Customers GetData()
{
string constr = @"Data Source=.\Sql2005;Initial Catalog=Northwind;Integrated Security = true";
using (SqlConnection con = new SqlConnection(constr))
{
    using (SqlCommand cmd = new SqlCommand("SELECT TOP 20 * FROM Customers"))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            sda.SelectCommand = cmd;
            using (Customers dsCustomers = new Customers())
            {
                sda.Fill(dsCustomers, "DataTable1");
                return dsCustomers;
            }
        }
    }
}

}