PDA

View Full Version : سوال: مشکل در استفاده از sp در Linq هنگام گزارشگیری با stimulsoftreprot



Iran58
چهارشنبه 31 اردیبهشت 1393, 12:14 عصر
سلام
من کد زیر را نوشته ام برنامه هم بخوبی کار می کند
public StiReport report=new StiReport();

public void Regdate(StiReport report)
{
var db = new CameraDataContext();
using (CameraDataContext context=new CameraDataContext())
{
var q = from row in context.Users
select
new
{
row.Name,
row.Family,
row.UserName
};
report.RegData("q",q);
}
}
private void btnPrint_Click(object sender, EventArgs e)
{
report.Load("report.mrt");
Regdate(report);
report.Show();
}


ولی هنگامیکه در linq از sp استفاده می کنم و کد زیر را می نویسم
public void Regdate(StiReport report)
{
var db = new CameraDataContext();
using (CameraDataContext context=new CameraDataContext())
{
var q = from row in context.LicenseConstant_all()
select row;
report.RegData("q", q);
}
}


private void btnPrint_Click(object sender, EventArgs e)
{
report.Load("report.mrt");
Regdate(report);
report.Show();
}

خطا می گیرد
متن خطا: The query results cannot be enumerated more than once.
لطفا راهنمای کنید که چطور از sp در linq برای گزارش گیری استفاده کنم
باسپاس

parvizwpf
پنج شنبه 01 خرداد 1393, 16:28 عصر
آیا q دیتا دارد؟ جایی که داره خطا میده یک ToList بزنید.

Iran58
شنبه 03 خرداد 1393, 16:46 عصر
آیا q دیتا دارد؟ جایی که داره خطا میده یک ToList بزنید.

با کد میشه توضیح بدهید

fakhravari
شنبه 03 خرداد 1393, 17:02 عصر
داده پشتیبانی نمیشود
دیتاتیبل کنید

Iran58
یک شنبه 04 خرداد 1393, 06:35 صبح
باتشکر از همه دوستان
حل شد

//1)
public StiReport report=new StiReport();

//2)
public void Regdate(StiReport report)
{
var db = new CameraDataContext();
using (CameraDataContext context=new CameraDataContext())
{
var q = (from row in context.Users_all()//context.Users//
select new
{
row.Name,
row.Family,
row.UserName
});
report.RegData("q", q.ToList());

}
}
private void btnPrint_Click(object sender, EventArgs e)
{
//3)
report.Load("rUsersAll.mrt");
Regdate(report);
report.Show();
}