PDA

View Full Version : سوال: SetDataSource Execption



Bahar_HS
چهارشنبه 12 خرداد 1389, 00:14 صبح
با سلام
من این کد رو نوشتم و برنامه به این دستور ایراد می گیره



crystal.SetDataSource(ds);




public FormReport()
{
InitializeComponent();
Report();

}
private void Report()
{
SqlConnection con = new SqlConnection("Data Source = (local);Initial Catalog = factor_1;Integrated Security=True");
SqlDataAdapter sda = new SqlDataAdapter();
DataSet ds = new DataSet();
//
ds.Clear();
//
sda.SelectCommand = new SqlCommand();
sda.SelectCommand.Connection = con;
sda.SelectCommand.CommandText = "select * from Customer";
//
con.Open();
sda.Fill(ds,"Customer");
con.Close();
//
CrystalReport1 crystal = new CrystalReport1();
crystal.SetDataSource(ds);
crystalReportViewer1.ReportSource = crystal;
//
con = null;
sda = null;
}


:متفکر:اشکالش چیه؟

sara.f
چهارشنبه 12 خرداد 1389, 00:24 صبح
سلام دوست عزیز
خب چه ایرادی میگیره؟ ERROR مربوطه را بذارید اینجا

Bahar_HS
چهارشنبه 12 خرداد 1389, 07:30 صبح
سلام

از فرم اول نام مشتری موردنظر انتخاب میشه و دکمه ی گزارش گیری کلیک میشه ،
با کلیک دکمه ی گزارش گیری فرم 2 که crystalviewer1 روش گذاشتم ، باید
نمایش داده بشه،
که نمیشه، موقع کلیک روی دکمه ای که گفتم برنامه Execption میده و الان که دقت کردم میگه که جدولی وجود نداره،
من فقط یه crystalreport به برنامه Add کردم،و فقط همین کدها رو نوشتم ،
برای crystalreport تنظیمات دیگه ای هم لازمه؟
ممنون

sara.f
چهارشنبه 12 خرداد 1389, 12:20 عصر
سلام

از فرم اول نام مشتری موردنظر انتخاب میشه و دکمه ی گزارش گیری کلیک میشه ،
با کلیک دکمه ی گزارش گیری فرم 2 که crystalviewer1 روش گذاشتم ، باید
نمایش داده بشه،
که نمیشه، موقع کلیک روی دکمه ای که گفتم برنامه Execption میده و الان که دقت کردم میگه که جدولی وجود نداره،
من فقط یه crystalreport به برنامه Add کردم،و فقط همین کدها رو نوشتم ،
برای crystalreport تنظیمات دیگه ای هم لازمه؟
ممنون

خب شما تنها CrystalReport را به برنامه ADD کردید؟ یعنی هیچ گونه Datasource برای گزارشتون تعیین نکردید؟ شما باید گزارش را به table هاتون در SQL متصل کنید.

Bahar_HS
چهارشنبه 12 خرداد 1389, 23:46 عصر
به برنامه یه Dataset وDataTable اضافه کردم وهر دوشون رو به کریستال،
واین قسمت برنامه رو تغییر دادم ، یه صفحه ی خالی نمایش داده میشه،
(داده ها ی بازیابی شده نمایش داده نمیشه)




DataSet1 ds = new DataSet1();


چکارباید کرد که داده های دستور Select نمایش داده بشه؟

sara.f
پنج شنبه 13 خرداد 1389, 01:08 صبح
دوست عزیز منظورم اینه که خارج از کد، آیا گزارشتون را از طریق Wizard به Datasource متصل می کنید؟ شما باید به پایگاه دادتون متصل بشید و بعد فیلدهای مربوطه را به درون گزارش Drag کنید. آیا این کار را انجام میدید؟

Bahar_HS
پنج شنبه 13 خرداد 1389, 12:05 عصر
یعنی هم از طریق ویزارد و هم کد؟

من می خوام نتایج پیوند دوتا جدول رو در کریستال نشون بدم،
البته براش یه SP تعریف کردم،
از new connection برم یا از ADO Dataset ؟ ودیتابیس و SP رو بهش معرفی کنم؟
بخش کدنویسی و بخش تنظیمات ویزادش چطور میشه؟

sara.f
پنج شنبه 13 خرداد 1389, 12:21 عصر
من مراحلش را با شکل بهت نشون میدم.
از اونجا که شما از SQL Server استفاده می کنید باید اینطوری عمل کنید.
اول که یک Add new Item میزنی و یک فرم Crystal Repot را ایجاد می کنی و بعدش میری به حالت wizard که در اینجا بر اساس شکل باید نوع Datasource را مشخص کنی، بر روی ( OLE DB (ADO کلیک می کنید.
http://barnamenevis.org/forum/attachment.php?attachmentid=50325&stc=1&d=1275552981

بعد از اون نام Server و database را تعیین می کنید.
http://barnamenevis.org/forum/attachment.php?attachmentid=50326&stc=1&d=1275552541

حالا جدول مورد نظر را از سمت چپ کلیک کنید و با زدن اون فلش جدول را انتخاب می کنید.
http://barnamenevis.org/forum/attachment.php?attachmentid=50327&stc=1&d=1275552541

دیگه مراحل wizard را جلو برید تا به finish برسید و حالا جدول مورد نظر با فیلدهاش قابل مشاهده هست، به راحتی فیلدی که میخواید در گزارش نمایش داه باشه را Click & Drag می کنید و به قسمت Details می کشیدش.

http://barnamenevis.org/forum/attachment.php?attachmentid=50328&stc=1&d=1275552541