الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة Database Vendor Code 17

بدأه eng_alammari في 24 يوليو 2016 · 8 رد · 1,670 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

اعمل على نظام متصل بقاعدة بيانات Microsoft SQL Server  واعمل على التقارير بواسطة

Crystal Report التابع لشركة Business Object

المشكلة بعد تصميم التقارير تعمل بشكل جيد ولا توجد مشكلة ويتم الاتصال من خلال البرنامج

لكن عند تغيير اسم الجهاز الذي هو نفسه سيرفر قاعدة البيانات تظهر هذه الرسالة .

"Failed to open the connection
Database Vendor Code 17"

وعند عمل Set Datasource Location

باسم السيرفر الجديد يشتغل التقرير

المشكلة ان هذا الاسلوب لا ينفع ولا يصح ومتعب ومرهق في نفس الوقت من منكم توصل لحل هذه المشكلة اكون شاكر له وممتن لو افادنا بما نستطيع تجاوز المشكلة

#2

look to this code

 protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            ReportDocument crRep = new ReportDocument();

            crRep.Load(Server.MapPath("~\\crRunLotReport.rpt"));

            SqlConnectionStringBuilder csbDb = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            Tables crTables;
            TableLogOnInfo crTableLogOnInfo;
            ConnectionInfo crConnectionInfo = new ConnectionInfo();
            crConnectionInfo.ServerName = csbDb.DataSource.ToString();
            crConnectionInfo.DatabaseName = csbDb.InitialCatalog.ToString();
            crConnectionInfo.UserID = csbDb.UserID.ToString();
            crConnectionInfo.Password = csbDb.Password.ToString();
            crTables = crRep.Database.Tables;
            foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
            {
                string x = crTable.Name;
                crTableLogOnInfo = crTable.LogOnInfo;
                crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
                crTable.ApplyLogOnInfo(crTableLogOnInfo);
            }

            crRep.SetParameterValue("@pnSocialGovernorateCode", Session["pnSocialGovernorateCode"].ToString());

            ExportOptions oExportOptions = new ExportOptions();
            oExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;


            crRep.ExportToHttpResponse(oExportOptions, Response, false, "export");

            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType = "text/richtext";
            Response.Flush();
            Response.Close();

            crRep.Close();
            crRep.Dispose();
        }
        catch (Exception ex)
        {
            Label1.Text = ex.Message.ToString();
        }
    }
1
#3

اخي الكريم ! اشكرك على هذا الحل وسوف اقوم بتجريبه لكن الاتعتقد ان هناك مشكلة في التقرير نفسه !

#4

تم حل المشكلة وجزاك الله خيرا على هذه المساعدة القيمة التي وفرت لي وقت وجهد كبير

 

لله درك وعلى الله اجرك

#5

يعطيك الف عافية
ارجو منكم المساعدة

اين اضع هذا الكود ؟؟؟

#6

اكرمك الله اخي eng_alammari

اخي  aqsa1 ضع الكود  في زر او في صفحة االتقرير

#7

جزاك الله الف خير ياخوي على تفاعلك معي

ولكن عندما اضع الكود في صفحة التقرير ، تطلع لي اخطاء كما هو موضح في الصورة

 

Untitled90.jpg

#8

ما نوع البرنامج هل هو windows application or web application

عل العموم هو يبحث مصادر المكتبات غير الي هذة العبارات


System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());

اما بقية الاخطاء في هي خاصه بالweb application واعتقد انل تعمل windows application

وهذا كود windows application

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
 
    class ClassPrint
    {
        
        public static void subSetReport(ReportDocument crRep, ParameterFields oParameterFields, Form oMdiParent, bool ShowGroupTree)
        {
            SqlConnectionStringBuilder csbDb = new SqlConnectionStringBuilder(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
   
            Tables crTables;
            TableLogOnInfo crTableLogOnInfo;
            ConnectionInfo crConnectionInfo = new ConnectionInfo();
            crConnectionInfo.ServerName = csbDb.DataSource.ToString();
            crConnectionInfo.DatabaseName = csbDb.InitialCatalog.ToString();
            crConnectionInfo.UserID = csbDb.UserID.ToString();
            crConnectionInfo.Password = csbDb.Password.ToString();
            crTables = crRep.Database.Tables;
            foreach (Table crTable in crTables)
            {
                string x = crTable.Name;
                crTableLogOnInfo = crTable.LogOnInfo;
                crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
                crTable.ApplyLogOnInfo(crTableLogOnInfo);
            }

            //crRep.VerifyDatabase();

            frmPrint frm = new frmPrint();
            if (oParameterFields!=null )
                frm.crystalReportViewer1.ParameterFieldInfo = oParameterFields;

            frm.crystalReportViewer1.ReportSource = crRep;
            frm.crystalReportViewer1.Refresh();

            frm.crystalReportViewer1.DisplayGroupTree = frm.crystalReportViewer1.ShowGroupTreeButton = ShowGroupTree;

            frm.MdiParent = oMdiParent;
            frm.Show();
        }
      
    }

بالتوفيق

#9

الله يعطيك العافيه أخي الكريم 

جاري التجريب

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…