你是用的直接读数据库的那种方式吧?
这样的方式不是很好
实在要用的话,给你个方案吧
你需要给你的crystalreportviewer加上一个logoninfo
TableLogOnInfo info = new TableLogOnInfo();
TableLogOnInfos infos = new TableLogOnInfos();//注意:这里比前面的多了一个“s”
ConnectionInfo conn = new ConnectionInfo();
conn.ServerName = "localhost";
conn.DataSource = "Northwind";
conn.UserID = "sa";
conn.Password = "";
info.ConnectionInfo = conn;
info.TableName = "Customers";
infos.Add(info);
this.crystalReportViewer1.LogOnInfo = infos;
this.crystalReportViewer1.ReportSource = rpt;
this.crystalReportViewer1.DataBind();

解决方案 »

  1.   

    我上面这个是SQL SERVER的
    不要说不会改,其实很简单,看看那个logoninfo里面对access是需要些什么样的属性就是了
      

  2.   

    to:Reeezak:朋友,我用的是ACCESS。
    conn.ServerName = "localhost";
    conn.DataSource = "Northwind";
    conn.UserID = "sa";
    conn.Password = "";
    这里怎么弄呀,
      

  3.   

    对了,access有一个加密的问题,这个估计就是sqlserver的登陆一样的了
      

  4.   

    这个不是问题吧?
    你看看访问access的连接字符串是怎么写的就是了啊
    他这个crystal report怎么说都是用ADO.NET访问数据库的,那么也就是拿你的logoninfo自己组装了一个连接字符串,设置一下这个logoninfo里面相应的属性就是了啊
      

  5.   

    conn.ServerName = C:\Documents and Settings\Reeezak\桌面\db1.mdb
    conn.DatabaseName = C:\Documents and Settings\Reeezak\桌面\db1.mdb
    conn.Password = 1
    conn.UserID = admin看看跟连接字符串是不是很像啊?
      

  6.   

    用户名在你加密的时候是默认的“admin”