مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

تغییر conection string در کریستال ریپورت

چهارشنبه, 02 اسفند 1396 13:10

تغییر conection string در کریستال ریپورت

من یک گزارش تو کرییستال طراحی کردم، ولی بعد از طراحی دیتابیسم رو تغییر دادم، با آپدیت کردن set lacation بازم تو سیستم کلاینت دیتا بیسم رو نمی شناسه، ولی وقتی تو یه گزارش جدید یک کانشکشن استرینگ درست می کنم دیتا بیس رو می شناسه و بدون مشکل نشونش می ده
حالا می خوام کانشکن استرینگ بقیه گزارش ها رو هم عوض کنم تا تو اون گزارش ها هم دیتا بیس رو بشناسه

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

چهارشنبه, 02 اسفند 1396 13:59

کانکشن استرینگ رو چجوری نوشتین؟

معمولا . یا لوکال هاست میزنیم که سیستم خودمونه که باید آدرس پرتال رو بنویسیم و یا آی پی ولید سرور

چهارشنبه, 02 اسفند 1396 14:24

زمان نوشتم پروژه لوکال هاست بود، ولی برای اجرا عوضش کردم و آی پی سرور رو نشوتم

الان روی سرور بدون مشکل گزارش ها اجرا می شه

ولی روی کلایینت مشکل دراه و نشون نمی ده

چهارشنبه, 02 اسفند 1396 14:33

بیشتر توضیح بدین که اگه تونستیم راهنمایی کنیم!!!!

مثلا:

از چه ورژن کریستالی استفاده کردی؟

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

چهارشنبه, 02 اسفند 1396 14:40

گزراش آماده ، فقط از کاربر مثلا تاریخ و شماره دستگاه رو می گیره و گزارش روز رو بهش می ده

از OLE DB استفاده کردم

الان مشکل اینجا هست که بعد از ساختن SETUP گزارش ها تو سیستم سرور اجرا می شه ولی وقتی می ره رو سیستم کلاینت صفحه ای که تو عکس زیر هست نشون داده می شه

چهارشنبه, 02 اسفند 1396 14:45

ببینید قسمت دیتا بیس رو بسته و حتی نمی تونیم دستی اسم دیتابیس رو بنویسیم و گزارش رو ببینم

در حالی که من وقتی با یک کانکشن جدید یک گزارش جدید می سازم و تو سیستم کلاینت اجرا می کنم گزارش رو نشون می ده

من فکر می کنم دیتابیس رو بعد از اینکه تغییر کرده نمی شناسه، نمی دونم شاید هم اشتباه می کنم

به هر حال با کانکشن جدید جواب می ده

چهارشنبه, 02 اسفند 1396 14:48

دیتابیسو چجوری به ریپورت پاس میدین؟ بصورت ویزادی اوکی کردین؟

بهتره که دیتا بیس رو از طریق

crystalReportViewer1.ReportSource = objRpt;

به ریپورت پاس بدین اینجوری یوزر نیم و پسورد توسط سرور اوکی میشه و کاربر نمیبینه اطلاعات شمارو

این یه نمونه است:

 objRpt = new CrystalReport1();

            string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                "Data Source=|DataDirectory|\\db1.mdb"; 
 string query = CreateSelectQueryAndParameters();

            //if there is no item select, then exit from the method.
            if (!query.Contains("Column"))
            {
                MessageBox.Show("No selection to display!");
                return;
            }

            try
            {
                OleDbConnection Conn = new OleDbConnection(connString);

                OleDbDataAdapter adepter = 
                new OleDbDataAdapter(query, connString);
                DataSet1 Ds = new DataSet1();

                adepter.Fill(Ds, "Customer");
                
                objRpt.SetDataSource(Ds);
                crystalReportViewer1.ReportSource = objRpt;
            }
            catch (OleDbException oleEx)
            {
                MessageBox.Show(oleEx.Message);
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }

و یه نکته مهم:

کنترل کنید که در سطح شبکه به دیتابیس دسترسی داشته باشین!!!!

پورت SqlServer باید باز باشه برای استفاده در سطح شبکه ( برای این کار باید پورت 1433 را در اینباند  firewall دسترسی بدین به همه! )

چهارشنبه, 02 اسفند 1396 14:49

این رو هم بگم من بعد از عوض کردن کانکنشن استرینگ برنامه برای گذاشتن روی سرور کلاینت برای اینکه کانکشن گزراشم عوض بشه فقط رفتم توی محیط تو database expert و یک بار با آی پی سرور لاگین کردم همین

چهارشنبه, 02 اسفند 1396 14:53

نه ببیند تو عکس مشخصه من مشکل یوزر و پس ورد ندارم مشکل من دیتابیس هست، الان یوزر و پس رو تو صفحه ای که باز شده خود کریستال نوشته ولی دیتابیس رو پیدا نکرده که بنویسه

اگر می شد برای همین گزارشی که طراحی کردم یک کانکشن استرینگ جدید رو جایگزین کانشکن استرینگ قبلی کنم فکر می کنم مشکل حل می شد

چهارشنبه, 02 اسفند 1396 14:55

همه جای پروژه کار می کنه و اطلاعات رو از سرور می گیره فقط مشکل تو گزراش گیری ها هست

چهارشنبه, 02 اسفند 1396 15:13

کنترل کنید که امکان اتصال به دیتابیس در شبکه وجود داره!!!

چهارشنبه, 02 اسفند 1396 15:23

بله در سیستم کلاینت از تمام پروژه می شه حذف و درج و... رو انجام داد

چهارشنبه, 02 اسفند 1396 15:31

این کارها رو انجام بدین!! ( درصورتی که سرور سیستم خودتون نیست )

اول Sql Server رو باز کنید

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

اینو امتحان کنید

برنامه ربطی نداره به این موضوع ولی کریستال ریپورت باید دسترسی داشته باشه به سرور

چهارشنبه, 02 اسفند 1396 15:39

سیستم کلاینت اس کیو ال نداره

ولی وقتی یک ریپورت جدید می سازم تو سیستم کلاینت ریپورت رو بدون مشکل نشون می ده، پس یعنی دسترسی داره

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید