winform在打开水晶报表界面要登入ID和密码

ymj110 2010-08-19 04:14:53
在我的电脑上面不会出现这样的问题再别人的电脑上面就会出现这样的问题

我的报表功能是

报表数据库路径




...全文
562 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangfeng08080808 2013-03-22
  • 打赏
  • 举报
回复
要是要输入登录ID的话要输入什么呢?
阿双2009 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ymj110 的回复:]
可以不用代码用可视化下作的可以改成相对路径吗[/Quote]

这个没弄过,
ymj110 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 luols 的回复:]
引用 11 楼 ymj110 的回复:
引用 10 楼 luols 的回复:
你把数据库包含在项目中就可以用相对路径了。

请问要怎么做了
我那个水晶报表就是按上次您交我的方法做的,但是在别人的电脑上面就会这样


你把.mdb文件放在项目所在文件夹下
Application.StartupPath; //这个默认路径是指向启动项目bin目录下的Debug目录
在需要路径的地方……
[/Quote]
可以不用代码用可视化下作的可以改成相对路径吗
ymj110 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 babyt 的回复:]
mdb没有相对路径的概念,必须用绝对路径


耐心点,用6楼的代码试试。
[/Quote]
如果只能用绝对路径的话,在别人的电脑上面不就会出错了吗
阿双2009 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ymj110 的回复:]
引用 10 楼 luols 的回复:
你把数据库包含在项目中就可以用相对路径了。

请问要怎么做了
我那个水晶报表就是按上次您交我的方法做的,但是在别人的电脑上面就会这样
[/Quote]

你把.mdb文件放在项目所在文件夹下
Application.StartupPath; //这个默认路径是指向启动项目bin目录下的Debug目录
在需要路径的地方可通过这个构造出mdb相对路径
ymj110 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 luols 的回复:]
你把数据库包含在项目中就可以用相对路径了。
[/Quote]
请问要怎么做了
我那个水晶报表就是按上次您交我的方法做的,但是在别人的电脑上面就会这样
阿双2009 2010-08-21
  • 打赏
  • 举报
回复
你把数据库包含在项目中就可以用相对路径了。
ymj110 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 babyt 的回复:]
mdb没有相对路径的概念,必须用绝对路径


耐心点,用6楼的代码试试。
[/Quote]
如果那样做会不会在别人的电脑上面出现这种情况了
阿双2009 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 ymj110 的回复:]
您能不能把详细的代码贴出来了,还有您是不是首先新建一个数据集了,还是怎么做了,请您把步骤和代码贴出来行不[/Quote]

对,因为我是用PUSH模式,所以必然要先创建数据集DataSet1,代码如下:

string ConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\Database\Database1.mdb"; //我这边的.mdb数据库放在启动项目bin->Debug->Database文件夹下
OleDbConnection conn = new OleDbConnection(ConnString);

string strSQL = "select * from table";//这边select的字段名及类型要和数据集中的数据表结构(名称及类型)保持一致
OleDbDataAdapter da = new OleDbDataAdapter(strSQL, conn);
DataSet1 ds = new DataSet1();
da.Fill(ds.TableA); //填充到数据集DataSet1的TableA表(我数据集新建了一个TableA表)

CrystalReport1 myReport = new CrystalReport1();
myReport.SetDataSource(ds); //为报表设置数据源
crystalReportViewer1.ReportSource = myReport;
laichunlin 2010-08-21
  • 打赏
  • 举报
回复
如过你用的方法是先建立数据集,那么数据集的名称要和ds中的表名相同。即假如数据集名称为:mytable则da.fill(ds,"mytable")要同时为mytable
ymj110 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 luols 的回复:]
引用 16 楼 ymj110 的回复:
引用 15 楼 luols 的回复:
引用 14 楼 ymj110 的回复:
可以不用代码用可视化下作的可以改成相对路径吗

这个没弄过,

http://blog.csdn.net/luols/archive/2010/06/25/5692933.aspx
您能告诉我您的这篇文章是那数据库连接时怎么做的吗


12楼已给出回复..
[/Quote]
您能不能把详细的代码贴出来了,还有您是不是首先新建一个数据集了,还是怎么做了,请您把步骤和代码贴出来行不
阿双2009 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ymj110 的回复:]
引用 15 楼 luols 的回复:
引用 14 楼 ymj110 的回复:
可以不用代码用可视化下作的可以改成相对路径吗

这个没弄过,

http://blog.csdn.net/luols/archive/2010/06/25/5692933.aspx
您能告诉我您的这篇文章是那数据库连接时怎么做的吗
[/Quote]

12楼已给出回复..
ymj110 2010-08-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 luols 的回复:]
引用 14 楼 ymj110 的回复:
可以不用代码用可视化下作的可以改成相对路径吗

这个没弄过,
[/Quote]
http://blog.csdn.net/luols/archive/2010/06/25/5692933.aspx
您能告诉我您的这篇文章是那数据库连接时怎么做的吗
阿泰 2010-08-20
  • 打赏
  • 举报
回复
mdb没有相对路径的概念,必须用绝对路径


耐心点,用6楼的代码试试。
ymj110 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 babyt 的回复:]
这两篇文章都没问题,问题是你制作报表的方法
你做的时候,是直接连mdb文件的
而代码,却是以PUSH方式进行的,也就是说,这种代码,报表的数据源应该是一个dataset,而不是你的mdb

改造起来倒是比较简单

myReport.SetDataSource(ds);

这一句,改成

C# code
//定义水晶报表的数据库连接信息
ConnectionI……
[/Quote]
数据库的相对路径要怎么弄了

在这边可以改吗
阿泰 2010-08-20
  • 打赏
  • 举报
回复
这两篇文章都没问题,问题是你制作报表的方法
你做的时候,是直接连mdb文件的
而代码,却是以PUSH方式进行的,也就是说,这种代码,报表的数据源应该是一个dataset,而不是你的mdb

改造起来倒是比较简单

myReport.SetDataSource(ds);

这一句,改成
//定义水晶报表的数据库连接信息
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = @"C:\My Documents\Visual Studio 2005\WebSites\CrystalReportsWebSite2\employee.mdb"; //实际路径
//将数据库信息传递给报表
SetDBLogonForReport(connectionInfo, myReport);

另外增加如下函数定义

private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
{
Tables tables = reportDocument.Database.Tables;

foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);

}
}
ymj110 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 babyt 的回复:]
在其他电脑上的时候,mdb位置应该是发生了变化
需要代码控制一下,
参考:
http://topic.csdn.net/u/20100107/17/b22faee1-a334-4a7a-8ae9-4417c3eff726.html
3楼代码
[/Quote]
上面看的不怎么理解
我的代码只有这些
DataSet ds = new DataSet();
private void btnTJ_Click(object sender, EventArgs e)
{
try
{
CR myReport = new CR();
myReport.SetDataSource(ds);

switch (comboBox1.Text)
{
case "按会员等级":
myReport.SetParameterValue("item", "级别");
break;
case "按会员卡类型":
myReport.SetParameterValue("item", "类型");
break;
case "按职业单位":
myReport.SetParameterValue("item", "单位");
break;
}
crystalReportViewer1.ReportSource = myReport;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
还有其它都是可视化做的,数据库连接也是可视化下做的
http://blog.csdn.net/luols/archive/2010/06/25/5692933.aspx
http://topic.csdn.net/u/20100623/09/b94bb0c2-e15e-4444-8157-f9b54886d05d.html
由于我是初学者都是根据这两个网址做的
阿泰 2010-08-19
  • 打赏
  • 举报
回复
在其他电脑上的时候,mdb位置应该是发生了变化
需要代码控制一下,
参考:
http://topic.csdn.net/u/20100107/17/b22faee1-a334-4a7a-8ae9-4417c3eff726.html
3楼代码
ymj110 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 ymj110 的回复:]
在我的电脑上面不会出现这样的问题再别人的电脑上面就会出现这样的问题

我的报表功能是

报表数据库路径
[/Quote]
现在可以看到了吧
ymj110 2010-08-19
  • 打赏
  • 举报
回复
在我的电脑上面不会出现这样的问题再别人的电脑上面就会出现这样的问题

我的报表功能是

报表数据库路径


请各位高手帮下小弟
加载更多回复(1)

4,817

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧