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

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

کاربر سایت

leily1

عضویت از 1394/06/22

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

  • چهارشنبه 2 اسفند 1396
  • 13:10
تشکر میکنم

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

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

پاسخ های این پرسش

تعداد پاسخ ها : 13 پاسخ
کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 2 اسفند 1396
  • 13:59

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

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 14:24

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

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

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

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 2 اسفند 1396
  • 14:33

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

مثلا:

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

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 14:40

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

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

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 14:45

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

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

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

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

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 2 اسفند 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 دسترسی بدین به همه! )

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 14:49

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 14:53

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

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 14:55

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

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 2 اسفند 1396
  • 15:13

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 15:23

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

کاربر سایت

kaveh.norozi

عضویت از 1394/11/30

  • چهارشنبه 2 اسفند 1396
  • 15:31

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

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

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

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

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

کاربر سایت

leily1

عضویت از 1394/06/22

  • چهارشنبه 2 اسفند 1396
  • 15:39

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

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)