vs 2010的Project Crystal Report在Windows 7、32位或64位中不起作用

时间:2018-09-30 07:10:39

标签: crystal-reports crystal-reports-2010

我的vs 2010项目水晶报表可以在Windows XP中很好地工作,但是当我在Windows 7或10中设置它时,它不能在任何32位或64位窗口中工作。我在水晶报表中使用了数据表。我与许多大型程序员讨论过,他们建议我在项目中添加一些dll或使用数据集。但它也不起作用。同样的问题。

使用数据集或dataTable加载Crystal报告。在本节中,tyu.SetDataSource(ds);不会加载数据。或.rpt错误17

我在数据库和c#Windows应用程序中使用SQL Server。

我尝试过的事情:

private void PrintRep()
{

     //DataSet ds = new DataSet();
     //string connStr = ConfigurationManager.ConnectionStrings["conn_str"].ConnectionString;
     SqlDataAdapter dadapter = new SqlDataAdapter("SELECT * FROM  dbo.T_ATTR  Order by dbo.T_ATTR.IndRegID ", "Data Source=DESKTOP-IRFOPKM\\SHUVO;Initial Catalog=ServiceOneEasyClock;User ID=sa;Password=S123456_");
     DataSet dset = new DataSet();
     dadapter.Fill(dset, "dbo.T_ATTR");
     int op = 0;
     op= 1;
     frmReportsViewer rptviewer = new frmReportsViewer(op, dset);
     rptviewer.Show();
}

private void frmReportsViewer_Load(object sender, EventArgs e)
{
      if (option == 1)
      {
          try
          {   //ParameterFields pfs = new ParameterFields();
              //pfs = GetCompanyInformation();
              //crystalReportViewer1.ParameterFieldInfo = pfs;
              string username = "sa"; // database user name
              string password = "S123456_"; //database password



              ds.AcceptChanges();
              tyu.Refresh();
              ////tyu.Refresh();
              //tyu.Refresh();
              try
              {
                  tyu.SetDataSource(ds);
              }

              catch(Exception ex)

              {
                  MessageBox.Show(ex.ToString());
              }
              crystalReportViewer.ReportSource = tyu;
              crystalReportViewer.RefreshReport();
              crystalReportViewer.Show();

          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.Message.ToString());
          }
      }

      if (option == 2)
      {
          try
          {   //ParameterFields pfs = new ParameterFields();
              //pfs = GetCompanyInformation();
              //crystalReportViewer1.ParameterFieldInfo = pfs;
              oRpt2.SetDataSource(dtr);
              crystalReportViewer.ReportSource = oRpt2;
          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.Message.ToString());
          }
      }
  }

2 个答案:

答案 0 :(得分:0)

如果出现此错误:

Failed to open the connection. Details: [Database Vendor Code: 17 ]
Failed to open the connection. C:\WINDOWS\TEMP\{ADB8090C-40ED-499D-88E3-915E23B0C5C3}.rpt 
Details: [Database Vendor Code: 17 ]

执行以下步骤:

  1. 在CR XI设计器中打开报告。

  2. 选择数据库->设置数据源位置。

  3. “设置数据源位置”窗口将出现,并在“替换为”部分连接到数据库,并通过单击“更新”按钮将这些表替换为当前数据源中的表。

  4. 更新后,关闭“设置数据源位置”窗口。

  5. 转到“数据库菜单”,然后单击“验证数据库”,然后单击“确定”。

  6. 预览报告并保存报告。 ;)

答案 1 :(得分:0)

您是否已在Windows 7计算机上安装了VS 2010的Crystal Reports Runtime?

Deploying Crystal Reports for Visual Studio 2010 Runtime

将项目从开发机移至生产机时,我必须这样做。

相关问题