+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Leeres Result beim SqlConnectionDataProvider

dataprovider

(Aurelio Gisler) #1

Hallo

Ich wollte eine einfache Consolen Applikation machen, welche Daten aus einer Datenbank holt und diese dann druckt.

Dafür habe ich folgenden Code verwendet:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;
using System.Net;
using System.Xml;
using System.Configuration;
using combit.ListLabel23;
using combit.ListLabel23.DataProviders;
using Microsoft.Win32;

namespace ExampleCall
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Beispieltool für den List&Label Print!");
            Console.WriteLine("© 2018 by Xippo GmbH");
            //Console.ReadLine();

            try
            {
                SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ProfixDB"].ConnectionString);
                SqlConnectionDataProvider prov = new SqlConnectionDataProvider(conn);

                ListLabel LL = new ListLabel();
                LL.SetDataBinding(prov, string.Empty);
                LL.AutoProjectFile = string.Empty;
                LL.AutoDestination = LlPrintMode.PreviewControl;
                LL.AutoShowPrintOptions = false;
                LL.AutoProjectType = LlProject.List | LlProject.FileAlsoNew;
                LL.Design();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            Console.ReadLine();
        }


    }
}

Nun ist es leider so, dass immer ein leeres Resultset kommt, obwohl einfach mal alle Tabellen verwendet werden sollen. Nehme ich den gleichen SQL-Connection String und verwende diesem im Beispieltool “DataBinding” werden alle Tabellen verwendet. Was könnte der Grund sein, dass dies nicht funktioniert?

Freundliche Grüsse
Aurelio Gisler
indent preformatted text by 4 spaces


(combit Support - Patrick Preuschoff) #2

Uns ist aktuell noch unklar, weswegen der von Ihnen genutzte Beispielcode nicht funktionieren sollte - an und für sich sieht dieser gut aus.

Möglicherweise hilft es sowohl Ihre Beispielanwendung, als auch das DataBinding-Sample nochmals zu debuggen und zu schauen, ob der ConnectionString nicht doch minimal anders aufgebaut wird.

Sollten Sie List & Label in der Enterprise-Version verwenden, so hätten Sie auch Zugriff auf den .NET-Sourcecode über unsere Service Pack-Seite im Support-Bereich der Homepage und könnten “tiefer” analysieren, was sich denn unterscheidet.

Zu guter Letzt könnte auch folgende Eigenschaft des SqlConnectionDataProviders einen Unterschied ausmachen: https://docu.combit.net/net/de/#combit.ListLabel~combit.ListLabel.DataProviders.SqlConnectionDataProvider~SupportedElementTypes.html


(Aurelio Gisler) #3

Hallo

Ich habe den Fehler gefunden, nachdem ich wusste das der Code so passen sollte habe ich noch etwas in den Datei-Versionen angeschaut. In der Demo wird von der combit.ListLabel23.dll die Version 23.3.6761.26838 verwendet. Ich habe in meinem Programm die Version 23.3.6761.26866 verwendet. Mit der neueren 23.3.6761.26866 funktioniert es nicht, verwende ich die ältere, passt es.

Danke!

Freundliche Grüsse


(combit - Jochen Bartlau) #4

Das ist seltsam - bewusst haben wir da nichts geändert. Wenn Sie sich noch die Zeit dafür nehmen wollen würde mich sehr interessieren, was an dem neueren Build das Problem verursacht. Haben Sie eine Enterprise Edition? In dem Fall könnten Sie einmal aus dem Servicepackbereich den Sourcecode der Komponente herunterladen (der ist immer tagesaktuell) und statt einer Assembly-Referenz eine Projektreferenz hinzufügen. Die Sourcen für den Provider finden Sie im File DataProviders\llsqldataprovider.cs. Wenn Sie hier einen Breakpoint auf die Init Methode setzen können Sie genau verfolgen, was warum (nicht) angemeldet wird.

Alternativ können Sie natürlich auch einen Supportcase eröffnen oder - wenn sich das Problem jetzt erstmal für Sie erledigt hat - auch einfach weiterarbeiten. Ich würde nur gerne sicherstellen, dass sich kein generelles Problem hinter Ihrer Anfrage versteckt.