Laden...

Forenbeiträge von tequila slammer Ingesamt 253 Beiträge

02.05.2008 - 09:47 Uhr

Vielen Dank. Die Hinweise haben mir sehr geholfen.

30.04.2008 - 09:36 Uhr

Hallo Forum,

ich möchte gern das Standardkontextmenü, das man erreicht wenn man doppelt oben links auf das Icon klickt, um ein paar Einträge erweitern.

Ich denke mal ich werde eine Methode überschreiben müssen nur habe ich leider nicht die leiseste Ahnung welche. Kann mir da eine bitte helfen?

Sebastian

19.04.2008 - 19:12 Uhr

Hallo Chris,

danke für den Tipp, allerdings kommt diese Variante nicht in Frage, da ich alles aus dem WebPart heraus machen muss.

Mfg
Sebastian

18.04.2008 - 14:56 Uhr

Hallo Forum,

ich habe mir ein WebPart geschrieben, dass ich nun um die komfortablen Filterfunktionen von WSS 3.0 erweitern möchte. Kann mir da einer bei den Ansätze behilflich sein? Mir ist klar, dass das etwas allgemein ist aber ich habe absolut keine Vorstellung wie das realisiert werden könnte.

Mfg Sebastian

15.04.2008 - 20:23 Uhr

Hallo Forum,

ist es möglich aus dem Setup-Projekt von VS2005 heraus eine MS SQL Datenbank anlegen zu lassen?

Der Benutzer muss nur Server, Benutzer und Kennwort angeben. Der Rest würde dann vom Setup gemacht.

mfg Sebastian

02.04.2008 - 22:52 Uhr

Hallo neoak68,
diese Zeile musst du eigentlich nicht ändern.

mfg

25.03.2008 - 19:54 Uhr

Hallo Peter,

die Methode ist implementiert. Ich habe versucht sie um weitere Parameter zu erweitern aber dann weis ich nicht, wie ich die erweiterten Parameter automatisch durch den Wizard übergeben kann.

Eine eigene Methode zu erstellen ist nicht das Problem zieht aber dann erheblich mehr Code nach sich. (So sieht es zumindest in der MSDN aus)

mfg
Sebastian

19.03.2008 - 14:08 Uhr

Hallo Forum,

die Suche hat mir schon etwas weitergeholfen. Jedoch habe ich noch Fragen.

Ich habe mir einen eigenen MembershipProvider und RoleProvider geschrieben.
Nun möchte ich das CreateUserWizard Control verwenden um einfach Benutzer anlegen zu können.

Ich versuche dazu eine eigene CreateUser Methode zu verwenden, da ich nur Benutzername, Email, Kennwort sowie eine ShopID benötige.

Ich bekomme jedesmal die Fehlermeldung:

MembershipProvider implementiert den geerbten abstrakten Member System.Web.Security.MembershipProvider.CreateUser(string, string, string, string, string, bool, object, out System.Web.Security.MembershipCreateStatus) nicht.

Dabei versuche ich diesen nur zu erweitern. Da dies nicht geht überlade ich die Methode CreateUser nun, aber wie kann ich dem Wizard mitteilen, dass er meine Überladung nehmen soll? Beispiele im Netz(MSDN) zeigen viel Code der der Standardnutzung nicht anfällt.

Könnt Ihr mir da helfen?

19.03.2008 - 13:56 Uhr

Hallo neoak68,

es gibt in der Web.config der entsprechenden Site noch einen weiteren Punkt der da heißt: <trust level="WSS_Minimal" originUrl="" />.

Dort kannst du einstellen wie hoch das Level sein soll, in dem du auf WSS_Medium umstellst. Für Testumgebungen ist eine Veränderung ok - jedoch nicht für Produktivumgebungen.

mfg Sebastian

17.03.2008 - 13:36 Uhr

Ich muss mich auch mal bedanken. Zum einen an den Themenstarter und an Peter. Die Frage und die Antwort kamen genau zur richtigen Zeit für mein gleiches Problem. 😁

12.03.2008 - 11:29 Uhr

Ich danke euch. Beide Möglichkeiten werde ich mir mal genauer ansehen.

11.03.2008 - 22:20 Uhr

Hallo Forum,

ich habe eine Webanwendung, die Masterpages verwendet und an der man sich über das LoginControl mit Custom-MembershipProvider anmeldet.
Ich bin nun am hin und herüberlegen, wo ich nun prüfen soll, ob der zugreifende Benutzer angemeldet ist. Zwei Möglichkeiten stehen offen:

  1. ich gehe über das Page_Load-Event der Masterpage oder
  2. ich binde in das Page_Load-Event jeder Seite die Überprüfung ein.

Ersters würde Schreibarbeit sparen aber zweiteres erscheint mir etwas sicherer.
Was meint ihr - wie handhabt ihr sowas?

Prüfen tue ich übrigens mit

User.Identity.IsAuthenticated

bzw.

Page.User.Identity.IsAuthenticated

Mfg Sebastian

03.03.2008 - 19:23 Uhr

Ich habe dazu auch mal eine Frage. Ich möchte, das mein Dienst einfach unter 'Anwendung' seine Einträge schreibt. So weit auch ok. Nur steht immer als Quelle TestService obwohl es eigentlich nirgends steht.

Mein Code sieht so aus:


EventLog eventLog = new EventLog("Application");
eventLog.Source = "ProduktService";
eventLog.WriteEntry("Fehler beim Initialisieren des Service.\n"+ex.Message, EventLogEntryType.Error);

Wenn ich die MSDN richtig verstanden habe, muss ich noch nicht mal beim Erstellen des Objekts 'Application' mitgeben.

Mfg.

Edit:

Vergesst meine Frage, im Designer, war noch ein this.ServiceName falsch. ?(

08.02.2008 - 13:10 Uhr

Cisco ist das Stichwort 🙂 Die haben wir hier, kannst du mir kurz den Befehl zukommen lassen? Den Rest für die Konfiguration eines Ciscos kenne ich.

Danke Sebastian

07.02.2008 - 15:03 Uhr

Hallo Egon,

grundsätzlich verstehe ich das. Aber es gibt Tool mit denen das anscheinend klappt. Wie lösen diese das dann?

06.02.2008 - 11:17 Uhr

Hallo Forum,

für ein Tool habe ich mal die Möglichkeit implementiert, Geräte über Wake On Lan zu starten. Nun haben sich leider ein paar Gegebenheiten geändert (Subnetze usw.) und das Tool funktioniert nicht mehr 100%ig. Gibt es eine Möglichkeit, beim versenden des Packets das entsprechende Subnetz mitzugeben?

Der Code:


class WakeOnLan
    {
        private string macAdress;
        private byte[] mac;

        internal WakeOnLan(string macAdress)
        {
            this.macAdress = macAdress.ToUpper();
            this.mac = new byte[] { Convert.ToByte(this.macAdress.Substring(0, 2), 16), Convert.ToByte(this.macAdress.Substring(2, 2), 16), Convert.ToByte(this.macAdress.Substring(4, 2), 16), Convert.ToByte(this.macAdress.Substring(6, 2), 16), Convert.ToByte(this.macAdress.Substring(8, 2), 16), Convert.ToByte(this.macAdress.Substring(10, 2), 16) };
        }

        internal void SendWOL()
        {
            //Erzeugen des WOL Byte
            byte[] packet = new byte[17 * 6];
            
            //Erzeugen der 6 x FF Kopf des Packets
            for (int i = 0; i < 6; i++)
            {
                packet[i] = 0xFF;
            }

            //Erzeuge den MagicPacket Körper
            for (int i = 1; i <= 16; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    packet[i * 6 + j] = this.mac[j];
                }
            }

            UdpClient udpClient = new UdpClient();
            udpClient.Connect(System.Net.IPAddress.Broadcast, 40000);
            udpClient.Send(packet, packet.Length);
        }
    }

18.01.2008 - 09:30 Uhr

Danke dir. PN ist an dich raus.

Sebastian

Edit:

Kurz zum Ausgang:

Nach dem mir Peter gezeigt hat wie ich mein WebPart auch ohne SharePoint/wss testen kann, bin ich auch sofort auf den Fehler gestoßen.

Weiter oben im Beitrag sieht man, dass ich innerhalb des Events eine Switch Anweisung benutze, die jewals nummerische Fälle unterscheidet. Jedoch meine DropDownList alphanummerische Werte hat. Daher von dieser Seite nochmal ein dickes Danke an Peter, ohne ihn hätte ich bald keine Haare mehr gehabt.

17.01.2008 - 17:32 Uhr

Hallo Peter,

Entschuldigung da hatte ich dich falsch verstanden.

Meine Vorgehensweise:

Ich gehe auf die Seite und gehe in den Bearbeitungsmodus. Dort füge ich dann das WebPart aus dem WebPartKatalog hinzu. Danach beende ich den Bearbeitungsmodus und das WebPart ist auf der Seite verfügbar.

Mfg Sebastian

17.01.2008 - 16:46 Uhr

Hallo Peter,

ich füge mein Control oben in der CreateChildControls Methode hinzu.

mfg Sebastian

17.01.2008 - 15:22 Uhr

Hallo Peter,

ich habe die RenderContents Methode weg gelassen aber es ändert sich leider nichts. 🙁

Mfg Sebastian

17.01.2008 - 12:04 Uhr

Hallo Peter, nachfolgend mal alle Methoden, die ich benutze/ ändere.
Ich vergebe die ID vor dem anhängen des Handlers.


        private DropDownList ddlView;
        private DropDownList ddlYear;
        private DropDownList ddlAdType;
        private DropDownList ddlVariable;

        private Table table;

        private LinkButton lbtShow;

        private string[] Monate = { "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" };
        private string[] Tage = { "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" };

       protected override void OnInit(EventArgs e)
       {
           this.Title = "Werbeverwaltung";
           base.OnInit(e);
        }

        protected override void CreateChildControls()
        {
            //Ansichten erstellen
            this.ddlView = new DropDownList();
            ddlView.ID = "ddlView";
            ddlView.Items.Add(new ListItem("Jahresansicht", "yearly", true));
            ddlView.Items.Add(new ListItem("Quartalsansicht", "quarter"));
            ddlView.Items.Add(new ListItem("Monatsansicht", "monthly"));
            ddlView.SelectedIndexChanged += new EventHandler(ddlView_SelectedIndexChanged);
            ddlView.EnableViewState = true;
            this.Controls.Add(this.ddlView);

            //Jahr erstellen
            this.ddlYear = new DropDownList();
            #region ddlYear füllen
            for (int x = 2003; x <= DateTime.Now.Year + 1; x++)
            {
                ListItem NewItem = new ListItem(x.ToString(), x.ToString());

                if (x == DateTime.Now.Year)
                {
                    NewItem.Selected = true;
                }
                ddlYear.Items.Add(NewItem);
            }
            #endregion
            this.ddlView.AutoPostBack = true;
            this.Controls.Add(this.ddlYear);

            //Werbetypen erstellen
            this.ddlAdType = new DropDownList();
            ddlAdType.ID = "ddlAdType";
            ddlAdType.Items.Add(new ListItem("alle", "all", true));
            ddlAdType.Items.Add(new ListItem("Mailings", "mailings"));
            ddlAdType.Items.Add(new ListItem("Rest", "tail"));
            this.Controls.Add(this.ddlAdType);

            //variables ListView erstellen
            this.ddlVariable = new DropDownList();
            this.Controls.Add(this.ddlVariable);

            //Linkbutton
            this.lbtShow = new LinkButton();
            lbtShow.Text = "Anzeigen";
            lbtShow.Click += new EventHandler(lbtShow_Click);
            this.Controls.Add(this.lbtShow);

            //Table
            this.table = new Table();
            Controls.Add(this.table);
        }

        protected override void RenderContents(HtmlTextWriter writer)
        {
            ddlView.RenderControl(writer);
            ddlYear.RenderControl(writer);
            ddlVariable.RenderControl(writer);
            ddlAdType.RenderControl(writer);
            lbtShow.RenderControl(writer);

            table.RenderControl(writer);
        }

        void ddlView_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (this.ddlView.SelectedItem.Value)
            {
                case "1":
                    this.ddlVariable.Visible = false;
                    break;

                case "2":
                    this.ddlVariable.Visible = true;
                    this.ddlVariable.Items.Clear();

                    for (int x = 1; x <= 4; x++)
                    {
                        int QuartalStart = (((x - 1) * 3) + 1);

                        ListItem NewItem = new ListItem(Monate[QuartalStart - 1] + " bis " + Monate[QuartalStart + 1], QuartalStart.ToString());

                        if (DateTime.Now.Month >= QuartalStart && DateTime.Now.Month <= QuartalStart + 2)
                        {
                            NewItem.Selected = true;
                        }
                        this.ddlVariable.Items.Add(NewItem);
                    }
                    ddlVariable.DataBind();
                    break;

                case "3":
                    this.ddlVariable.Visible = true;
                    this.ddlVariable.Items.Clear();

                    for (int x = 1; x <= 12; x++)
                    {
                        ListItem NewItem = new ListItem(Monate[x - 1], x.ToString());

                        if (DateTime.Now.Month == x)
                        {
                            NewItem.Selected = true;
                        }
                        this.ddlVariable.Items.Add(NewItem);
                    }
                    ddlVariable.DataBind();
                    break;
            }
        }
17.01.2008 - 09:23 Uhr

Hallo Peter,

ich leite von System.Web.UI.WebParts.WebPart ab.
Das mit der ID werde ich gleich mal testen.

Edit:

Ich habe meinem Control nun mit

ddlView.ID = "ddlView";

eine ID vergeben. Allerdings ändert sich nach wie vor nichts. Bringt es was, den Code zu posten?

16.01.2008 - 16:21 Uhr

Hallo Leute,

ich habe im Moment ein riesiges Problem zum Thema WebParts, dass mir die Zeit für alles andere raubt.
Mein Problem besteht darin, dass ich bestimmte Ereignisse nicht verarbeiten kann.

Beispielhaft dafür ist das SelectedIndexChanged Ereignis einer DropDownList oder aber auch das GridView-SortCommand Ereignis.

Meine Controls werden in der CreateChildControls-Methode erstellt und auch der Controls-Liste hinzugefügt.

Das sieht beispielhaft so aus:


this.ddlView = new DropDownList();
ddlView.Items.Add(new ListItem("Jahresansicht", "yearly", true));
ddlView.Items.Add(new ListItem("Quartalsansicht", "quarter"));
ddlView.Items.Add(new ListItem("Monatsansicht", "monthly"));
ddlView.SelectedIndexChanged += new EventHandler(ddlView_SelectedIndexChanged);
ddlView.EnableViewState = true;
this.Controls.Add(this.ddlView);

Das Ereignis wird nicht durchlaufen. Verwende ich hingegen einen Button und füge diesem ein Ereignis hinzu (Button_Click) funktioniert alles für den Button.

Die Controls werden in der Render Methode gerendert.


ddlView.RenderControl(writer);

Hat dafür jemand eine Lösung oder weis woran das Verhalten liegt?

18.12.2007 - 18:47 Uhr

nach dem ich Melones Link auf mich habe wirken muss ich zustimmen. Und zwar aus folgendem Grund:

Ich würde für jeden ItemCollection Eintrag den gleichen Code durchlaufen abhängig davon, welchen Typ von Playliste (wpl, pls, m3u) ich erstellen möchte.

@Behoernchen:
Die Collection (Klasse) brauche ich, damit ich die erstellten Items-Objekte nicht wieder verliere. Den meiner Meinung nach macht es keinen Sinn pauschal alle Objekte in Listen der Typ-Klassen (m3u,pls,wpl) zu speichern nur damit ich sie am Ende (beim Erstellen) in einer auch wirklich brauche. Ich würde sie eben bei Bedarf an die entsprechende Klasse übergeben.

Resourcen schonender Umgang oder Unsinn?

18.12.2007 - 14:58 Uhr

es macht schon Sinn was ihr schreibt aber bisher sehe ich es so:

Ein Item (stellvertretend für ein Lied, was ja ein Playlisteintrag darstellt) hat Eigenschaften, die es Beschreiben (Titel, Dateiname, Spieldauer) während eine List nur eine Aufzählung ohne Eigenschaften ist. Oder nicht?

@Behoernchen: Ist deine eigentliche Frage nicht schon zu C# lastig? Denn ganz simpel gesagt kann ich ja einfach

List<PlayListItem> itemCollectionList = new List<PlayListItem>();

in der Collection Klasse aufrufen.

Grundsätzlich geht es mir aber erstmal um die Vererbungsrichtung um dann in die programatische Umsetzung über zu gehen.

18.12.2007 - 14:15 Uhr

Ich bin nun seit geraumer Zeit im c# Umfeld am gang und lerne nach täglich mehr dazu. Immer wieder arbeite ich mit Klassen und Methoden aber nie habe ich es hinbekommen, dass diese auch mal erben. Nun habe ich mir ein konkretes Projekt zurecht gelegt und bitte wie in diesem Beitrag empfohlen um eure Mithilfe, mir Vererbung etwas klarer zu machen. Ich würde erstmal meine Überlegungen posten und dann meinen Code, wenn das recht ist.

Das Projekt:

Ich habe mir überlegt, einen "Playlisten-Wandler" zu erstellen. Die fertige Software soll also Playlisten im Format m3u (Winamp), wpl (WindowsMediaPlayer) und pls erstellen und untereinander wandeln können.

Aufbau der Solution:

Damit Mitglieder mit ähnlichen Verständnisproblemen wie alles nachvollziehen können beschreibe ich kurz wie meine Solution in VS2005 aussieht.

Projektmappe (PlayListManager)
Projektmappe1(PlayListManagerClassLibary)
Projektmappe2(PlayListManager)

PlayListManagerClassLibary: beinhaltet die Klassen
PlayListManager: beinhaltet das WinForm

Bisher erreicht =)

Ich habe die Klassen:

PlayListItem
PlayListItemCollection
wpl
m3u
pls

angelegt. Nach meinem Verständnis müssen die Klassen wpl,pls und m3u von PlayListItem erben. Unschlüßig bin ich mir, ob PlayListItemCollection auch von PlayListItem erben sollte. Da diese Collection einfach nur eine List<PlayListItem> ist. Ist das in der Theorie korrekt?

12.12.2007 - 19:26 Uhr

Hallo langalaxy,

Es ist schon ein vollwertiger PC bzw. ThinClient mit einem XP bzw. 2003 Server. Oder habe ich jetzt SmartClient fehlinterpretiert?

Der Link ist sehr interessant und wird ausprobiert.
Danke dir dafür.

12.12.2007 - 18:39 Uhr

Hallo Forum,

ich arbeite gerade an einem für mich sehr interessanten asp.net-Projekt, das nun in einem Status ist, in dem man den Nutzer weitere Arbeit abnehmen kann.

Die Aussgangssituation ist die, das in einem Intranet, Datenbestände angezeigt werden. Der Betrachter soll nun durch einen Klick auf einen Link in der Bestandsanzeige ein Programm auf seinem Rechner parameterisiert starten.

Bitte sagt nicht, dass es nicht geht. Ich hatte vor Jahren mal AppleJuice probiert. Dort gab es auch Seiten, auf denen man sehen konnte was neu ist und durch einen Klick auf den Link dazu komfortabel in seine Downloadliste übernehmen.

Kennt einer eine Methode, wie das funktionieren könnte?

Danke schonmal an alle.

12.12.2007 - 18:25 Uhr

Hallo sl3dg3hamm3r,

ich hatte damals das gleiche Problem wie du. Nach stundenlangem googlen habe ich dann eine Lösung gefunden, in der du die wsdl.exe mit Parameter über die CMD aufrufst. WSDL.exe erzeugte mir dann eine (Proxy)Klasse mit allen vom Service bereitgestellten Funktionen (Methoden) bereit.

Mit schnellen googlen habe ich das hier gefunden:

wsdl.exe /l:CS /n:MathService /out:MathService.cs MathService.wsdl

So in etwa sah auch bei mir der Befehl aus.

Vielleicht hilfts ja.

Edit: Ich sehe gerade du wolltest ja keine ProxyKlasse. Das hatte ich überlesen.

05.12.2007 - 15:52 Uhr

Da es von der Thematik gut past schreibe ich mein Problem mal mit hier rein. Kann man im Bearbeitungsmodus des GridViews auch andere Felder als die "Textbox" verwenden? Da ich gerne auch eine Checkbox benutzen würde, wäre das ideal.

Danke schonmal im Vorraus.

Edit:

Ich habe herausgefunden das es geht. Dazu muss ich nur ein TemplateColumn verwenden. Innerhalb dieses Columns füge ich dann noch ein ItemTemplate ein, dass meinen ASP:CheckBox Element enthält.

09.10.2007 - 19:55 Uhr

Achso, das meinst du, habe ich auch schon versucht. Irgendwie dachte ich an den DesignerCode wie bei einer WinForms Anwendung.

Ich habe gerade mal ein wenig getestet. Verwende ich keine Masterpage funktioniert alles prima. Ich verzweifel noch.

Nach mehrfachem Probieren, habe ich nun die Lösung gefunden. Man sollte darauf achten, dass das Controll nicht im ContentPlaceHolder eingebunden wird.

09.10.2007 - 19:39 Uhr

Hallo Peter,

leider ohne Erfolg. 🙁
Wie schreibt man denn sowas selbst?
Verwende ich eventuell das falsche Event?

09.10.2007 - 19:25 Uhr

Kann mir keiner Helfen? X(

Oder habe ich mich etwas ungenau/ undeutlich ausgedrückt?

Mfg

08.10.2007 - 11:25 Uhr

Hallo Leute,

da ich mich im Moment mit ASP.net beschäftige interessiert mich natürlich auch das Masterpage-Prinzip. Nun habe ich einfach mal einwenig hier die Suche benutzt und auch brauchbare Infos gefunden. Leider war nirgends eine Lösung für den Grund meiner Suche dabei. Die Ausgangsposition ist die, das ich auf meinem Master ein Menü Control gezogen habe und in der Master.cs im Page_Load Event folgendes stehen habe


this.Menu1.Items.Add(new MenuItem("test"));

Beim Ausführen erhalte ich nun immer NullReferenceException, kann aber nicht nachvollziehen warum? Alles was ich damit erreichen möchte, ist das, dass ich mein Menu aus einer Datenbank auslesen kann und der Master es immer parat hat.
Was mache ich falsch?

08.10.2007 - 11:00 Uhr

Eine Frage habe ich dann auch. Bietet 1und1 überhaupt asp-Unterstützung an?

28.09.2007 - 09:10 Uhr

Guten Morgen herbivore,

danke für den Hinweis. Ich dachte, wenn ich ein Array an Parametern übergeben, dann kommt dort auch ein Array an. Denkfehler meiner seits. Danke nochmal.

27.09.2007 - 22:48 Uhr

Hallo Forum,

ich befasse mich gerade mit Delegates und Invoke. Nach dem ich nun verstanden haben, wie es funktioniert, wollte ich etwas mit den Möglichkeiten rumspielen und habe folgendes gecoded. Leider erhalte ich nun beim Invoke eine TargetParameterCountException. Die Suche habe ich benutzt und ich behaupte mal, dass ich die dort aufgeführten Hinweise geprüft habe. Zumindest übergebe ich Parameter 😄. Wo mache ich den entscheidenden Fehler?

Der Delegate


private delegate void messageDelegate(object[] message);

Aufruf aus anderem Thread


this.Invoke(new messageDelegate(threadMessages), new object[] { "Katalogerstellung beendet", " ", MessageBoxButtons.OK, MessageBoxIcon.Information });

und die threadMessages - Methode:


private void threadMessages(object[] messageOption)
{
   MessageBox.Show(this, messageOption[0].ToString(), messageOption[1].ToString(), (MessageBoxButtons)messageOption[2], (MessageBoxIcon)messageOption[3]);
}

25.09.2007 - 22:00 Uhr

Hallo,

ich möchte aus einem Thread heraus auf ein ListView bzw desen Items zugreifen. Nun habe ich schon die Suche benutzt und dort auch einiges über Delegaten gefunden. Leider ist dieses Thema recht neu für mich und ich habe ein paar Fragen. So verstehe ich Delegaten, als Mittel um von einem Thread (nicht MainThread der Applikation) aus Änderungen auf Controls auszuüben. Wie kann ich dann aber vom MainThread aus Informationen in den Thread geben, damit der Thread weis welche Items selectiert sind?

Um zu verdeutlichen was ich meine, habe ich etwas Code angehängt.


private void btCreateCatalog_Click(object sender, EventArgs e)
{
   tSPBStatus.Maximum = lvDataBaseCatalogItems.SelectedItems.Count;

   catalogThread = new System.Threading.Thread(new System.Threading.ThreadStart(doTest));
   catalogThread.Start();
            
   MessageBox.Show("Katalogerstellung beendet");
}

private void doTest()
{
   for (int i = 0; i < lvDataBaseCatalogItems.Items.Count; i++)
   {
      if (lvDataBaseCatalogItems.Items[i].Checked == true) //hier erscheint die ThreadÜbergreifende Exception
      {
         System.Xml.XmlTextWriter xmlWriter = new System.Xml.XmlTextWriter(tbSettingsCatalogSaveDir.Text.Trim() + "\\" + tbSettingsCatalogFileName.Text.Trim() + "_" + lvDataBaseCatalogItems.Items[i].SubItems[1].Text.Trim() + ".xml", Encoding.GetEncoding("ISO-8859-15"));
         Catalog qCatCatalog = new Catalog(xmlWriter, this.verbindung);
         qCatCatalog.CreateCatalog(lvDataBaseCatalogItems.Items[i].SubItems[1].Text.Trim());
         xmlWriter.Close();

         #region Upload
         if (chbUploadCatalog.Checked == true)
         {
                        connection_string = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + dataBase + "; JET OLEDB:Database Password=";
                        verbindung = new System.Data.OleDb.OleDbConnection(connection_string);
                        query.Connection = verbindung;
                        try
                        {
                            qCatCatalog.UploadCatalog(tbSettingsCatalogSaveDir.Text.Trim() + "\\" + tbSettingsCatalogFileName.Text.Trim() + "_" + lvDataBaseCatalogItems.Items[i].SubItems[1].Text.Trim() + ".xml");
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
         }
         #endregion
         this.Invoke(new integerDelegate(setProgressValue), (i + 1)); //StatusProzessBar um eins erhöhen.
      }
   }
}
25.09.2007 - 00:57 Uhr

Guten Morgen,

leider muss ich mein Beitrag nochmal an die Spitze heben, da mir noch ein Fehler aufgefallen ist.

Benutze ich getEncoding("ISO-8859-15") dann werden leider meine Umlaute nicht dargestellt. Liegt das nun an der Methode getEncoding oder am ISO. Laut Wikipedia
bedeutet es eigentlich Latin-9, Westeuropäisch. Sprich die meisten Sonderzeichen und demnach ja dann auch ä,ö,ü,ß. Nur wie bekomme ich mein xml Dokument nun mit Sonderzeichen im ISO Coding?

21.09.2007 - 12:33 Uhr

danke. Schade wenn man die Baum vor lauter Wald nicht sieht.

21.09.2007 - 09:55 Uhr

Hallo Forum,

ich bin gerade dabei ein xml Dokument zu erstellen. Allerding sieht der Empfänger ein ISO-8859-1 oder ISO-8859-15 Encoding vor. Wie kann ich das meinem xmlTextWriter mitgeben? Im Encoding Parameter steht leider nur UniCode, UTF und ASCI.

mfg Sebastian

06.09.2007 - 19:39 Uhr

Danke für den Link. Im Moment noch ziemlich kompliziert. Aber ich werde es durcharbeiten.

Ich bin nun schon soweit, das ich den Service endlich ansprechen kann.
Für alle die es auch interessiert / interessieren muss nachfolgend mal mein Ansatz.


FileUploadOpenqService qCatWebService = new FileUploadOpenqService();

            qCatWebService.AllowAutoRedirect = true;
            qCatWebService.RequestEncoding = System.Text.Encoding.UTF8;
            qCatWebService.Timeout = 90000;
            qCatWebService.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Default;
            qCatWebService.Url = "http://infobub.arbeitsagentur.de/kursnet/services/openq";
            
            try
            {
                qCatWebService.upload(buffer, "Testanwender", "testkennwort", 1);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

06.09.2007 - 19:00 Uhr

Hallo Forum,

ich habe die Aufgabe erzeugte Bildungskataloge an das Kursnet der Arbeitsagentur über deren WebService weiterzugeben. Nun bin ich leider unerfahren was das Thema WebService angeht. Durch Nachlesen und Selbststudium habe zumindest schonmal eine Klasse, die ich in meinem Projekt verwenden kann. Die wsdl Datei gibt es hier. Leider komme ich ab diesen Zeitpunkt nicht weiter.

So stellt sich mir die Frage, was sich hiner AsyncCallBacks verbirgt?
Vielleicht hat ja von euch schon einer mit diesem Service gearbeitet und kann mir da ein paar Hilfestellungen geben.

mfg

Sebastian

06.09.2007 - 14:25 Uhr

Binde mal folgendes ein.

using System.xml;

Du erhälst dann einige xml Erweiterungen. Unteranderem dem xmlWriter und Reader. Damit solltest du was anfangen können.

29.07.2007 - 22:43 Uhr

Hallo,

ich möchte das Thema gerne noch einmal aufgreifen, da ich das gleiche Problem habe und ich leider nicht weis welche Einstellungen am IIS wo/ wie vorgenommen werden müssen.

Kann mir da einer behilflich sein?

11.07.2007 - 07:09 Uhr

Hallo Herbivore,

danke nochmal. Auch wenn ich nun eingestehen muss, das bisher anders umgesetzt zu haben. Aber aus Fehlern lernt man 🙂

Soll Service[] ein Array darstellen?

08.07.2007 - 00:02 Uhr

Hallo herbivore,

danke für den tipp mit der namensgebung für Klassen und Methoden. Ich werde deine "Eselsbrücke" für mich beherzigen.

Nun zum Versuch meine Frage zu konkretisieren:

Innerhalb meiner Form erzeuge ich für jedes Service Element des xml File ein Objekt.


...
for(int i=0;i<lvDBData.Items.Count;i++)
{
   //Objekte des Service erstellen
   xmlDocumentService service = new xmlDocumentService();
   service.DBItemID = lvDBData.Items[i].SubItems[1].Text;
}

//xml Dokument erstellen
xmlDocument xmldoc = new xmlDocument();
xmldoc.SetFileName(dateiname);
xmldoc.FillWithServices(); //<- dort soll auf die Service Objekte zugegriffen werden
...

Ich dachte mir das so. (Code ist nicht getestet!)


public void FillWithServices()
{
    int serviceDataBaseID = ServiceObjekt.DBItemID;
    ...
}

Gibt es denn die Möglichkeit eine Objektliste zu übergeben? Muss ich dies Liste selbst erstellen oder unterstützt mich das Framework? Ich konnte nichts finden in diese Richtung.

07.07.2007 - 17:09 Uhr

das es hier um encoding geht habe ich auch mal eine frage. kann man über encoding auch iso-8859-1 oder -15 Dokumente erstellen?

07.07.2007 - 15:47 Uhr

Hallo Forum,

ich hoffe, das ich im richtigen Forum poste.

Ich entwickle gerade ein Anwendung, die größer ist als das was ich bisher schon gemacht habe. Und nun stehen mir meine geringen OOP Kenntnisse im Weg, die Applikation besser werden zu lassen. Da man mit der Aufgabe wächst möchte ich dies nun schläunigst ändern und habe Worten Taten folgen lassen.

Bisher war es so, dass fast alles an Code in meiner Form1.cs stand und ich kaum Klassen benutzt habe. Damit sich das ändert möchte ich nun gewisse Teile auslagern.

Das Programm erzeugt aus einer Datenbank ein xml File mit dem Aufbau:
<xml...>
<Hauptelement>
<Service>
...
</Service>
<Service>
...
</Service>
...
</Hauptelement>

Den Service Bereich möchte ich in eine eigene Klasse auslagern. Ich habe mir dazu eine Klasse CreateService erstellt, die eine Property hat (DB_Key).
Nun hat ein Freund empfohlen, zwei Klassen zu machen. Eine die Einträge erzeugt und eine, die das eigentliche Dokument erstellt.

Meine Überlegungen dazu waren nun die, das ich einfach mit meiner Service Klasse Objekteinstanzen erstelle. Habe ich alle erstellt, erzeuge ich eine Instanz der Klasse zum Erstellen des Dokuments und greife auf die erstellten Service Objekte zu.

Und nun meine Frage: Wie greife ich darauf zu? Ist mein Ansatz vielleicht total falsch? Code kann ich bei Bedarf stellen.

06.07.2007 - 08:32 Uhr

Hallo Cookiie,

meiner Erfahrung nach würde xml auch in einer Zeile stehen, würde ich nicht


xmlWriter.Formatting = System.Xml.Formatting.Indented;

benutzen.

Daran kann es also auch nicht liegen. Schaue ich mir den betreffenden Datenbankeintrag an, ist dort in tatsächlich eine Art Zeilenumbruch angedeutet, der wie gesagt beim auslesen nicht sichtbar ist.

Ich danke euch trotzdem für die Antworten.