PDA

View Full Version : ست نشدن ديتا بيس



xvision
چهارشنبه 05 اسفند 1388, 09:50 صبح
يك مشكل عجيب براي من پيش اومده !
من تعدادي گزارش براي برنامه ام ( كه با C#‎‎‎ هست ) ايجاد كردم كه در فرم هاي مختلف برنامه اونها رو فراخوان ميكنم
براي تنظيم گزارش هم از دستورات زير استفاده ميكنم

string db = textBox1.Text;
string server = textBox2.Text;
string id = textBox3.Text;
string pass = textBox4.Text;

cr3.DataSourceConnections[0].SetConnection(server, db, false);

cr3.DataSourceConnections[0].SetLogon(id, pass);

crystalReportViewer1.ReportSource = cr3;

البته اين نمونه كد رو براي نمونه گذاشتم كه بدونيد چطور سرور يا ديتا بيس رو بهش معرفي ميكنم
اين كد روي سيستم خودم عالي كار ميكنه حتي وقتي ويندوز مجازي هم نصب ميكنم روي اون سيستم هم كارش رو درست انجام ميده
ولي وقتي روي يك سيستم ديگه ميخوام ازش استفاده كنم ( وقتي برنامه ام رو روي يك سيستم ديگه نصب يا اجرا ميكنم ) متاسفانه پنجره اي باز ميشه كه بايد مشخصات رو دوباره وارد كرد با اين توضيح كه همه مشخصاتي رو كه بهش دادم مياره جز ديتابيس كه جاش رو خالي ميگذاره !
كسي راه حلي يا پيشنهادي كه اين گره رو باز كنه به ذهنش ميرسه
بزرگترين مشكل جانبي من اينه كه هربار كه بخوام تست كنم كه كد جديد درسته يا نه بايد برم روي يك سيستم ديگه تستش كنم چون در هر حال روي سيستم خودم درست كار ميكنه

sara.f
چهارشنبه 05 اسفند 1388, 10:32 صبح
سلام

دوست عزیز، من تا حالا این نمونه کدی که گذاشتید را جایی ندیده بودم، واسه همینم نمی تونم روی کدتون اظهار نظر کنم.

ولی خوب در دو تا تاپیک قبلا مشکل شما مطرح شده بود، لینکشون را میذارم، شاید با مطالعشون مشکل شما هم حل شد.

http://barnamenevis.org/forum/showthread.php?t=178150
http://barnamenevis.org/forum/showthread.php?t=179657

xvision
چهارشنبه 05 اسفند 1388, 11:19 صبح
سلام و ممنون از راهنماييتون
من هر دو اين تاپيك ها رو قبلا ديده بودم تاپيك اول ميتونه كمك كنه ولي وقتي از اين روش استفاده ميكنم ( كه خودتون توضيح دادين ) دقيقا ارور زير رو براي SetDBLogon در قسمت tableLogOnInfos ميده :
error : Object reference not set to an instance of an object

xvision
چهارشنبه 05 اسفند 1388, 11:37 صبح
من تونستم مشكل اروري كه قبلا نوشتم حل كنم ولي متاسفانه نميتونم از شر اين تيك IntegratedSecurity خلاص بشم از كد زير هم استفاده ميكنم

conInfo.IntegratedSecurity = false;

ولي باز همون پنجره كذايي با IntegratedSecurity تيك خورده پيدا ميشه لطفا راهنمايي كنيد

xvision
چهارشنبه 05 اسفند 1388, 14:25 عصر
اساتيد گرامي
بعد از تست هاي متعدد روي چند سيستم به اين نتيجه رسيدم :
از 5 بخش سرور - ديتابيس - يوزر - پسورد و IntegratedSecurity فقط ميشود دو بخش يوزر و پسورد را به وسيله كد نويسي و از روشي كه در تاپيك
http://barnamenevis.org/forum/showthread.php?t=178150
توضيح داده شده تغيير داد ساير بخشها فقط به صورتي كه در خود گزارش كريستال ريپورتر ( هنگام طراحي ) ذخيره شده اند باقي ميمانند
در مثال خودم با وجود استفاده از كد هاي تاپيك بالا به هيچ وجه نمي توانم تغييري در نام سرور يا بانك اطلاعاتي بدهم !
مشكل اينجاست كه وقتي برنامه من روي يك سيستم ديگر اجرا ميشود نمي توان از ثابت ماندن نام سرور مطمئن بود :گریه:

xvision
پنج شنبه 06 اسفند 1388, 22:08 عصر
متاسفانه هنوز مشكل من پا برجاست هيچ كدام از اساتيد هم التفاتي به اين تاپيك ندارن :ناراحت:

من تونستم تمام قسمت ها رو بجز ديتا بيس رو از طيق كد نويسي تغيير بدم ولي هر كاري ميكنم ديتابيس روي سيستم هاي ديگه خالي نشون داده ميشه ( اسم ديتابيس رو نمياره ) البته همونطور كه قبلا هم گفتم روي سيستم خودم هيچ مشكلي نداره اما همون كدها روي سيستم هاي ديگه كار نمي كنه !
اگر كسي از اساتيد ميتونه لطفا كمك كنه توي موقعيت بدي افتادم

ممنون

bad_boy_2007
جمعه 07 اسفند 1388, 16:40 عصر
اين مشكل كريستاله ، من هم قبلا همين مشكل رو باهاش داشتم و بعد از كلي بررسي و تست سورسهاي مختلف مجبور شدم گزارشاتم رو بر پايه Dataset كنم ، يعني اينكه در برنامه منبع داده را (Typed Dataset) پر ميكنم و با متد RPT.setDataSource(DS) اين منبع داده را به گزارش پاس ميدم .

ولي در هر حال توصيه ميكنم كه كريستال را بگذاريد كنار و با StimulReport كار كنيد كه از UnTyped Dataset ها هم بخوبي پشتيباني ميكند .

xvision
شنبه 08 اسفند 1388, 12:22 عصر
من كه كريستال رو با اين مشكلات مسخره اش بوسيدم گذاشتم كنار و اگر مجبور نشم ديگه بهش برنمي گردم
خداييش StimulReport عاليه