你可以直接给crystal report数据集。我以前做过,但是具体我忘记怎么做的了。你先看看资料,如果找不到给我来信,我帮你看看我以前的程序在告诉你。my email:[email protected]

解决方案 »

  1.   

    我记得其Table对象中有个SQLString的属性。
      

  2.   

    可用DataSet做数据源,这样就可以更改Sql语句了
    就是说:DataSet----Crystal report----Viewer,肯定没问题,如要代码,请Email:[email protected]
      

  3.   

    各位高手。我在这问一个很低级的问题,上面提到的.rpt这种文件
    是怎么建立的?
      

  4.   

    用Crystal Report Designer建立。
      

  5.   

    感谢您使用微软产品。在C#中,使用Crystal Report制作报表时,您可以动态指定数据源和及时更新报表内容。
    您可以通过DataSet的方式来访问后台数据库,这样您需要手动编码来提取数据,填充DataSet,并传递到报表文件中。在这里,您可以动态指定报表数据源。下面提供一些基本的步骤,关于更详细的信息,请参考下面的链接:
    1.Solution Explorer/Add/Add New Item…/DataSet,按照提示建立DataSet;
    2.Solution Explorer/Add/Add New Item…/Crystal Report,在建立数据库链接时(Database Expert窗口),请选择<Project Data>,利用上一步建立的DataSet。
    如下提供一段示例代码供您参考(用来建立数据库链接,填充DataSet,并绑定到报表文件中):
        Private Sub BindReport()
            SqlConnection myConnection = New SqlConnection();
            myConnection.ConnectionString = "Server=localhost;database=pubs;uid=sa;pwd=sa";        SqlCommand myCommand = New SqlCommand();
            myCommand.Connection = myConnection;
    //在这里根据您的情况,动态指定设定SQL语句
            myCommand.CommandText = "Select * from Stores";
            myCommand.CommandType = CommandType.Text;        SqlDataAdapter myDA = New SqlDataAdapter();
            myDA.SelectCommand = myCommand;
    //这里的Dataset1为上面创建报表时建立
            Dataset1 myDS =New Dataset1();
            myDA.Fill(myDS, "Stores");
            CrystalReport1  oRpt= New CrystalReport1();
            oRpt.SetDataSource(myDS);
            CrystalReportViewer1.ReportSource = oRpt;
        End Sub
    请根据您系统的实际情况,将提供的代码进行修改。希望以上答复给您带来帮助。
    另外,Visual Studio.NET也提供了一些Crystal Report的简单例子[ C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Samples ],可供您参考。关于Crystal Report的更详细信息,请参考如下网站:
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;q100368
    http://community.crystaldecisions.net/
     — 微软全球技术中心 VB支持中心本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
      

  6.   

    TO:tonyjoule(寒星㊣) 
    能说具体些吗?我只是一个菜鸟
      

  7.   

    acptvb(微软全球技术中心 VB技术支持)
    我按照你的方法在C#里面做了一下,除了个错误信息,请您帮看一下是什么问题,谢谢!
    SqlConnection myConnection = new SqlConnection();
    myConnection.ConnectionString="server=tserver;uid= sa;pwd=;database =idg";
                
    SqlCommand myCommand = new SqlCommand("SELECT * FROM Postnr",myConnection);
    myCommand.CommandType = CommandType.Text;
    myCommand.CommandTimeout = 30;
                
    SqlDataAdapter myAdapter = new SqlDataAdapter();            
    myAdapter.SelectCommand = myCommand;myConnection.Open();DataSet myDS = new DataSet("Postnr");ReportDocument oRpt= new ReportDocument();
                
    oRpt.SetDataSource(myDS);
    crvSample.ReportSource=oRpt;
    出错信息是:
     未处理的“CrystalDecisions.CrystalReports.Engine.LoadSaveReportException”类型的异常出现在  crystaldecisions.crystalreports.engine.dll  中  
     
    其他信息:无效报表文件路径  
      

  8.   

    .
    .
    .
    using System.Data.SqlClient;
    using CrystalDecisions.Web;
    .
    .
    .
    public class WebForm3 : System.Web.UI.Page
    {
    protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
    .
    .
    . SqlConnection myConnection = new System.Data.SqlClient.SqlConnection();
    myConnection.ConnectionString = "Server=server1\\server1;database=riseguide;uid=sa;pwd=superman"; SqlCommand myCommand = new SqlCommand();
    myCommand.Connection = myConnection;
    //在这里根据您的情况,动态指定设定SQL语句
    myCommand.CommandText = "Select * from 房产房间资料";
    myCommand.CommandType = CommandType.Text; SqlDataAdapter myDA = new SqlDataAdapter();
    myDA.SelectCommand = myCommand;
    //这里的Dataset1为上面创建报表时建立
    DataSet myDS =new DataSet();
    myDA.Fill(myDS, "房产房间资料");
    CrystalReport1  oRpt= new CrystalReport1();//你需要建立一个报表文件CrystalReport1.rpt,并包含在项目中
    oRpt.SetDataSource(myDS);
    CrystalReportViewer1.ReportSource = oRpt;
    .
    .
    .