CrystalReport里saleOpen和product有主外键约束,productId,
数据集里也把这两个表关联了
详细资料里就拖了一个saleDate.
这是后台代码:
string sqlstrConn = "server=.;uid=sa;pwd=123456;database=jhdb";
SqlConnection conn = new SqlConnection(sqlstrConn);
conn.Open();
string strsql = "select s.saleDate from saleOpen s inner join product p on p.productId=s.productId";
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
DataSet2 ds = new DataSet2();
ReportDoc.Load(Server.MapPath(@"..\CrystalReport\CrystalReport.rpt"));
sda.Fill(ds, "saleOpen");
ReportDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = ReportDoc;
运行的时候出现错误:
sda.Fill(ds, "saleOpen");
未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
sql执行的时候是有数据的!!!
数据集里也把这两个表关联了
详细资料里就拖了一个saleDate.
这是后台代码:
string sqlstrConn = "server=.;uid=sa;pwd=123456;database=jhdb";
SqlConnection conn = new SqlConnection(sqlstrConn);
conn.Open();
string strsql = "select s.saleDate from saleOpen s inner join product p on p.productId=s.productId";
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
DataSet2 ds = new DataSet2();
ReportDoc.Load(Server.MapPath(@"..\CrystalReport\CrystalReport.rpt"));
sda.Fill(ds, "saleOpen");
ReportDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = ReportDoc;
运行的时候出现错误:
sda.Fill(ds, "saleOpen");
未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
sql执行的时候是有数据的!!!
解决方案 »
- 有没有人也遇到了和我一样在Chrome中页面一片空白的问题
- 那位帮我写一下简单的页面传值<a href=modify_day.aspx?id="+aaaa+">
- 两个网站都采用windows域认证,其中一个网站登陆成功后,进入另外一个网站如何不再跳出认证框?
- 求救, 我的电脑一装vs2005的sp1就关机,怎么回事啊?
- 如何获取如片的尺寸???
- 请教:如何在datalist里做弹出固定大小的页面,并传递参数到view.aspx上?
- 问个很菜的问题
- 一个想了几天的问题:web控件调用JavaScript
- 莫明其妙的程序状态问题,请高手教我!
- asp.net的一个问题,我头疼了好几天了
- 如何利用asp.net中的正则,查出字符串中的日期格式进行替换
- datalist中嵌套gridview
那你有可能把pull和push模式混用了
下面两篇介绍pull和push模式的,你参考下
http://topic.csdn.net/u/20090626/17/8090bf70-bed9-41ac-9e09-c0a6a7ab4cb8.html?51944http://topic.csdn.net/u/20090626/18/0e7d0af0-2555-479d-9cb5-84175787f2cd.html?25130
你水晶报表和DasaSet既然都是两个表,那你为什么添数据时,只填一个表呢?
sda.Fill(ds, "saleOpen");改为sda.Fill(ds);
处理方式二:
按你原来的方式写,只能写入一个 saleOpen表并且有很多重复项
ds.EnforceConstraints=false;
sda.Fill(ds, "saleOpen");
ds.EnforceConstraints=true;
如果改成这样就什么都查不出
用了这个还是会报错
sda.Fill(ds, "saleOpen");
未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
sda.Fill(ds, "saleOpen");
ds.EnforceConstraints=true;
这样应该不用会吧,我以前都这样用的
未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。 这个报错是纯数据集上的,跟水晶报表还没发生关系
现在最快的解决方法是,把dasetset里的约束关系去掉就行了。
sda.Fill(ds, "saleOpen");
//ds.EnforceConstraints=true;把这句干掉就是不用约束了
但是。。我的sql语句是
select p.productName,s.salePrice from saleOpen s inner join product p on p.productId=s.productId
报表上从Product表里拖了个product,从SaleOpen表拖了个salePrice结果只能显示一个
如果sda.fill(ds,"saleOpen")那只能显示salePrice。
如果sda.fill(ds,"productName")那只能显示productName。
这样才能让他们都显示出来
sda.Fill(ds);
这个不行吗?
sda.Fill(ds, "mytable");这样应该就可以了吧
这自然是错的,实际上应该是(逻辑上是)//填充表1
select s.* from saleOpen s inner join product p on p.productId=s.productId
sda.fill(ds,"saleOpen");//填充表2
select p.* from saleOpen s inner join product p on p.productId=s.productId
sda.fill(ds,"productName");//把两个表都传给报表
ReportDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = ReportDoc;
string sqlstrConn = "server=.;uid=sa;pwd=123456;database=jhdb";
SqlConnection conn = new SqlConnection(sqlstrConn);
conn.Open();
string strsql = "select s.saleDate from saleOpen s inner join product p on p.productId=s.productId";
SqlDataAdapter sda = new SqlDataAdapter(strsql, conn);
DataSet2 ds = new DataSet2();
ReportDoc.Load(Server.MapPath(@"..\CrystalReport\CrystalReport.rpt"));
sda.Fill(ds, "saleOpen");
ReportDoc.SetDataSource(ds);
CrystalReportViewer1.ReportSource = ReportDoc;
Session["temp"] = ReportDoc;Page_Load(object send,EnventArgs e)
{
if( Session["temp"] != null)
{
CrystalReportViewer1.ReportSource = (ReportDocument)Session["temp"];
}
}
当我点击确定的时候怎么出现保存pdf格式???
DiskFileDestinationOptions myDiskFileDestinationOptions = new DiskFileDestinationOptions();
//exports文件夹要有权限并存在
string myFileName = @ "C:\exports\ " + Session.SessionID.ToString() + ".pdf ";
myDiskFileDestinationOptions.DiskFileName = myFileName;
PdfRtfWordFormatOptions myPdfRtfWordFormatOptions = new PdfRtfWordFormatOptions();
myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
myExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
myDiskFileDestinationOptions.DiskFileName = myFileName;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions;
myExportOptions.ExportFormatOptions = myPdfRtfWordFormatOptions; ReportDoc.Export(myExportOptions);
设置页面上的crystalreportviewer属性printmode=ActiveX
xg
xg
x
g
xg