PDA

View Full Version : سوال: مشکل اتصال پایگاه داده به کریستال ریپرت



eslamzadeh
سه شنبه 19 خرداد 1394, 14:22 عصر
سلام من میخوام کریستال رو به پایگاه داده وصل کنم ولی نمیشه و ارور میده اینم از عکساش!!!

132084

اینم از کد هام!!!
132085

کد ها رو هر مدل نوشتم مثلا تو مدل زیر که مینویسم میگه خالی هست خطت!!!


objReportDocument.SetDataSource(objSanadForoushDat aTable[0]);


یا به این شکل!!

objReportDocument.SetDataSource(objSanadForoushTab leAdapter.Fill(objSanadForoushDataTable));


لطفا کمکم کنید خیلی خیلی گیر این کارم!!!

khokhan
سه شنبه 19 خرداد 1394, 19:39 عصر
لطفا کمکم کنید خیلی خیلی گیر این کارم!!!
بعد از بازیابی اطلاعات و پرکردن دیتاتیبل داخل دیتاست
یعنی این کد :

Frm_report frmRPT = new Frm_report();
DataSet1.ModelMasnouTalaDataTable objModelMasnouTalaDataTable =
new DataSet1.ModelMasnouTalaDataTable();
DataSet1TableAdapters.ModelMasnouTalaTableAdapter objModelMasnouTalaTableAdapter =
new DataSet1TableAdapters.ModelMasnouTalaTableAdapter( );

objModelMasnouTalaTableAdapter.Fill (objModelMasnouTalaDataTable);
نوبت به این می رسه که بیای و گزارشی رو که براساس اون دیتاست ساختی نمونه سازی کنی و دیتاتیبل رو که با کدهای بالا پر کردی بهش اختصاص بد
اینطوری :


CrystalReport1 objRpt = new CrystalReport1();
objRpt.SetDataSource((DataTable)objModelMasnouTala DataTable);

اینجا یه نکته حساس وجود داره و اون اینکه دیتاتیبل شما داخل دیتاستی درست می شه که از نوع Strongly Typed است و مستقیما به عنوان دیتاتیبل گزارش نمی تونه قرار بگیره
پس یه عبارت (DataTable) داخل پارانتیز مقابلش قرار بده تا عمل تبدیل به دیتاتیبل از نوع سیستمی انجام بشه
منظورم این خط می باشد

objRpt.SetDataSource((DataTable)objModelMasnouTala DataTable);
132095


بعد از اون هم گزارش رو بفرست به کنترل crystalReportViewer و تمام
کل کدهای شما به این شکل بایستی باشه :


private void button1_Click(object sender, EventArgs e)
{
Frm_report frmRPT = new Frm_report();
DataSet1.ModelMasnouTalaDataTable objModelMasnouTalaDataTable =
new DataSet1.ModelMasnouTalaDataTable();
DataSet1TableAdapters.ModelMasnouTalaTableAdapter objModelMasnouTalaTableAdapter =
new DataSet1TableAdapters.ModelMasnouTalaTableAdapter( );

objModelMasnouTalaTableAdapter.Fill (objModelMasnouTalaDataTable);
CrystalReport1 objRpt = new CrystalReport1();
objRpt.SetDataSource((DataTable)objModelMasnouTala DataTable);
frmRPT.crystalReportViewer1.ReportSource = objRpt;
frmRPT.crystalReportViewer1.Refresh();
frmRPT.ShowDialog();
}

eslamzadeh
سه شنبه 19 خرداد 1394, 20:28 عصر
بعد از بازیابی اطلاعات و پرکردن دیتاتیبل داخل دیتاست
یعنی این کد :

Frm_report frmRPT = new Frm_report();
DataSet1.ModelMasnouTalaDataTable objModelMasnouTalaDataTable =
new DataSet1.ModelMasnouTalaDataTable();
DataSet1TableAdapters.ModelMasnouTalaTableAdapter objModelMasnouTalaTableAdapter =
new DataSet1TableAdapters.ModelMasnouTalaTableAdapter( );

objModelMasnouTalaTableAdapter.Fill (objModelMasnouTalaDataTable);
نوبت به این می رسه که بیای و گزارشی رو که براساس اون دیتاست ساختی نمونه سازی کنی و دیتاتیبل رو که با کدهای بالا پر کردی بهش اختصاص بد
اینطوری :


ممنون از راهنماییتون الان مشکلی که پیش اومده تا روی دکمه پرینت میزنم برنامه هنگ میکنه و بسته میشه!!!!!



DataSetSanadForoush.SanadForoushDataTable objSanadForoushDataTable =
new DataSetSanadForoush.SanadForoushDataTable();
DataSetSanadForoushTableAdapters.SanadForoushTable Adapter objSanadForoushTableAdapter =
new DataSetSanadForoushTableAdapters.SanadForoushTable Adapter();
objSanadForoushTableAdapter.Fill(objSanadForoushDa taTable);


ReportDocument objReportDocument = new ReportDocument();
objReportDocument.FileName = "SanadForoushTala.rpt";
objReportDocument.SetDataSource((DataTable)objSana dForoushDataTable);
crystalReportViewer1.ReportSource = objReportDocument;
crystalReportViewer1.Show();



به شکلی که گفتید تغییر دادم ولی الان هیچ اروری نمیده فقط بجاش برنامه هنگ میکنه و سیستم عامل از خط خارجش میکنه!

khokhan
سه شنبه 19 خرداد 1394, 22:16 عصر
به شکلی که گفتید تغییر دادم ولی الان هیچ اروری نمیده فقط بجاش برنامه هنگ میکنه و سیستم عامل از خط خارجش میکنه:لبخند:

چی چی رو هنگ می کنه؟

اینو امتحان کن ببینیم!!!!!!!!!!!!!!!!!!؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟:متفکر:

eslamzadeh
چهارشنبه 20 خرداد 1394, 02:10 صبح
چی چی رو هنگ می کنه؟

اینو امتحان کن ببینیم!!!!!!!!!!!!!!!!!!؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟:متفکر:

پروژه شما هم مشکل داره و باز نمیشه!!!!
اینم عکسش

132101

اینم از مال من که تا روی دکمه پرینت میزنی هنگ میکنه
132102

اگه هم به صورت دستی از بخش properties گزارش رو به crystal report viewer وصل کنم هنگام اجرا ازم یوزر و پسورد برای اتصال به دیتابیس رو میخواد!!!!! درحالی که هیچ پسوردی داده نشده!!!

khokhan
چهارشنبه 20 خرداد 1394, 13:05 عصر
پروژه شما هم مشکل داره و باز نمیشه!!!!
محتویات فایل app.config رو در نمونه ای که براتون دادم به شکل زیر تغییر بده تا اشکال برطرف بشه ....... یعنی تگ startup رو بعد از تگ connectionStrings قرار بده




<?xml version="1.0"?>
<configuration>

<configSections>

</configSections>
<connectionStrings>
<add name="combo_db.Properties.Settings.allDTConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\allDT.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>

</startup>
</configuration>

eslamzadeh
پنج شنبه 21 خرداد 1394, 17:57 عصر
محتویات فایل app.config رو در نمونه ای که براتون دادم به شکل زیر تغییر بده تا اشکال برطرف بشه ....... یعنی تگ startup رو بعد از تگ connectionStrings قرار بده




<?xml version="1.0"?>
<configuration>

<configSections>

</configSections>
<connectionStrings>
<add name="combo_db.Properties.Settings.allDTConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\allDT.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>

</startup>
</configuration>


مال شما اجرا میشه ولی مال من باز هنگ میکنه!!!!!
البته آپدیت چهار ویژوال رو هم نصب کردم!
این ارور رو به من میده!



An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll


Additional information: Could not load file or assembly 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified.


الان هم این ارور رو داد


Managed Debugging Assistant 'BindingFailure' has detected a problem in 'C:\Users\datcom\Documents\Visual Studio 2013\Projects\Zarrin hesab Miandoab\Zarrin hesab Miandoab\bin\Debug\Zarrin hesab Miandoab.vshost.exe'.


Additional information: The assembly loaded from code base 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64\dotnet1\crdb_adoplus.dll' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified.

eslamzadeh
پنج شنبه 21 خرداد 1394, 18:14 عصر
مشکل رو با این کد حل کردم الان گزارش رو نشون میده ولی خالی هست گزارش اونو نمیدونم چیکارش کنم!!!


<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

khokhan
پنج شنبه 21 خرداد 1394, 19:06 عصر
مشکل رو با این کد حل کردم الان گزارش رو نشون میده ولی خالی هست گزارش اونو نمیدونم چیکارش کنم!!!


<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>


ابتدا همون دیتاتیبل رو که به گزارش می فرستی رو توی یه دیتا گرید بریز ببین اصلا چیزی توش هست شاید دیتاتیبل پر نمی شه اگه از محتویاتش مطمئن شدی اونوقت دنبال علت در گزارش باش

eslamzadeh
پنج شنبه 21 خرداد 1394, 22:02 عصر
ابتدا همون دیتاتیبل رو که به گزارش می فرستی رو توی یه دیتا گرید بریز ببین اصلا چیزی توش هست شاید دیتاتیبل پر نمی شه اگه از محتویاتش مطمئن شدی اونوقت دنبال علت در گزارش باش

یه گزارش الکی با ویزاردش ساختم اطلاعات رو نشون میداد ولی وقتی خودم طراحی کرده بودم نشون نمی داد.