Laden...

Forenbeiträge von scub Ingesamt 20 Beiträge

14.02.2012 - 18:42 Uhr

Es gibt eine MSSQL Embedded Datenbank , schau mal unter dem Stcihwort

"Microsoft SQL Server Compact"

Da solltest du alles weitere finden. Lässt sich Quasi wie ein MSSQL Server verwenden besteht allerdings nur aus einer Datei.

gruß

14.02.2012 - 18:24 Uhr

Erstmal vielen dank für die schnelle Hilfe,

ja ich habe mir schonmal vor einiger Zeit zum Testen schnell etwas per HTTPwebRequest gebaut um die XML zu senden und die Antwort via RegEx geparsed, was natürlich nicht produktiv genutzt werden kann.

Werde das ganze Dann nochmal mittels der XML Klasse neu bauen. Ich dachte halt das es mittels XSD Files einfacher und bequemer geht, schade.

14.02.2012 - 17:42 Uhr

Hi,

das PDF kenne ich schon, allerdings steht dort ja auch nochmal drin das es keine WSDL gibt, weshalb ich ja versuche diese selbst aus funktionierenden XML Beispielen zu generieren.

14.02.2012 - 17:11 Uhr

Hallo,

ich möchte eine SOAP Schnittstelle in meinem C# Programm verwenden. Normalerweise ging das ganze recht bequem indem man einen Dienstverweis anlegen und auf die WSDL schauen lassen konnte.

Die aktuelle API (Textbroker) stellt leider keine WSDL zur verfügung. Dann habe ich herausgefunden das man diese einfach per Visual Studio und dem Tool xsd.exe aus einer XML Generieren kann. Das hat das Tool auch soweit gemacht.

Wenn ich jetzt einen Dienstverweis anlege und auf die Lokale XSD einstelle zeigt er mit im Debugfenster allerdings

Fehler 264 Fehler in benutzerdefiniertem Tool: Fehler beim Generieren von Code für den Dienstverweis "ServiceReference1". Weitere Einzelheiten finden Sie in den anderen Fehler- und Warnmeldungen.

an. Es gibt aber keine weiteren Fehler oder Warnmeldungen?

Wo genau liegt der Fehler? Ich würde mich freuen wenn jemand einen Tipp hat?

Falls es Hilft, hier die generierte XSD:


<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Envelope" targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mstns="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:app1="https://api.textbroker.de/Budget/">
  <xs:import namespace="https://api.textbroker.de/Budget/" schemaLocation="login_xml_app1.xsd" />
  <xs:element name="Envelope" msdata:IsDataSet="true" msdata:Locale="en-US" msdata:Prefix="SOAP-ENV">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Body" msdata:Prefix="SOAP-ENV">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="app1:doLogin" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

Und hier eine Beispiel XML:


<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://api.textbroker.de/Budget/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
	<SOAP-ENV:Body>
		<ns1:doLogin>
			<param0 xsi:type="xsd:int">123</param0>
			<param1 xsi:type="xsd:string">token</param1>
			<param2 xsi:type="xsd:string">budgetkey</param2>
		</ns1:doLogin>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.01.2012 - 16:43 Uhr

Hallo,

gibt es eine einfache möglichkeit ein DataRowView Objekt in ein typisiertes DataRow Objekt zu casten?

Ein einfaches (DataRowTyp)DataRowView funktioniert leider nicht und wirft eine Exception.

23.01.2012 - 12:56 Uhr

Hallo,

ersteinmal vielen dank für die Antworten.

Nach eigener Recherche bin ich auf MangoDB gestoßen. Dies ist zwar keine KV Datenbank sondern eine Dokumentenbasierte Datenbank.

Ich teste gerade wie "gut" Sie mit den Daten umgehen kann, bisher sieht es allerdings alles sehr schnön aus =)

Vorallem die Integration in C# ist mit der API einfach so wunderbar schnell und unkompliziert 👍

Falls für jemanden interessant, hier gibts einen Kurzüberblick:

http://code-inside.de/blog/2011/10/17/einstieg-in-mongodb/

Und hier alles Weitere:

http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial

guß
scub

22.01.2012 - 20:35 Uhr

Hallo,

für ein Projekt suche ich zzt. eine NoSQL KV Datenbank. Sie sollte sich möglichst leicht in C# implementieren lassen, sowie eventuell später auch mal in PHP.

Bei der Speicherung handelt es sich um ca. 200mio Datensätze (String, Int). Als Server steht ein Windows 2008 Server bereit welcher über ca. 4 - 6GB Ram Für die DB verfügt.

Bisher gefunden habe ich Redis ( http://redis.io/ ) , welche vorallem wegen der einfachen einbindung von Slave Servern sehr interessant war. Problematisch erschien mir das die DB alle Daten im Ram vorhält was zu Problemen führen könnte bei der Datenmenge. Lieber wäre mir eine Kombination von Ram&HDD zur speicherung.

Ich würde mich freuen wenn jemand eine empfehlung dazu hat oder vll schonmal etwas ähnliches umgesetzt hat.

gruß
scub

06.01.2012 - 23:16 Uhr

Was sind denn local_adapter und LDB überhaupt für Objekte. Was steckt denn hinter AddURLsRow?

"local_adapter" ist der via DataSet Designer erstellte TableAdapter der Lokalen Datenbank

und "LDB" Das DatSet der Lokalen Datenbank.

AddURLsRow Ist die TableAdapter Funktion um dem DataTable "URLs" eine neue Zeile hinzuzufügen.

06.01.2012 - 23:02 Uhr

Hallo,

wie genau mache ich das?

Ich führe


LDB.URLs.AddURLsRow(neueLC);
local_adapter.Update(LDB.URLs);

zzt. in einer schleife aus. Ich habe das Update auch schon untehalb der Schleife gesetzt aber das hat auch keinen verbesserung der Geschwindigkeit gebracht?

gruß
scub

06.01.2012 - 21:47 Uhr

verwendetes Datenbanksystem: MSSQL Compact

Hallo,

ich baue zzt. einen Crawler welcher eine zentrale Datenbank nutzt um die Ergebnisse zu speichern.

Desweiteren nutze ich eine Lokale DB (M$ Compact) um temporäre Daten zu speichern. Das ist hauptsächlich eine Liste welche URL's bearbeitet werden müssen / bereits bearbeitet wurden.

Das Problem ist nun das das schreiben in diese meiner meinung nach sehr lange dauert
(100 Zeilen ~ 5 Sek.). Ich vermute das das ständige aufbauen , insert ausführen, beenden der Verbindung viel Zeit in anspruch nimmt.

Hier das stückchen Code:


LocalDB.URLsRow neueLC = LDB.URLs.NewURLsRow();
neueLC.url = intern;
neueLC.status = 1;
try
{
LDB.URLs.AddURLsRow(neueLC);
local_adapter.Update(LDB.URLs);
interncount++;

}
catch (Exception err)
{

}

Der Try Catch Block dient dem Abfangen von Exception aufgrund von Duplicate Key da "url" auf unique gesetzt ist.

Gäbe es ansonsten vll bessere Alternativen? vll. das Ganze als List<string> bauen und in eine Textdatei speichern, welche beim start eingelesen wird?

vielen dank für eure Hilfe.

gruß
scub

20.12.2011 - 15:54 Uhr

Hi,

das ist mir klar, dazu nutze ich eine fertige Klasse (Chilkat Spider), dieser funktioniert mit relativen Pfaden auch problemlos.

Es gibt allerdings Website welche aus der Aktuellen URL und einem relativen Pfad z.b via PHP einen Link generieren welcher dann in einer Endlosschleife endet. Und genau dieses Problem möchte ich lösen.

20.12.2011 - 15:00 Uhr

Hallo,

ich hänge gerade an einem Problem und weiß nicht ob ich auf dem richtigen Weg bin.

Ich habe mir einen Webcrawler erstellt welcher Websites nach bestimmten Inhalten durchsucht.

Das klappt soweit auch wunderbar, allerdings habe ich probleme das manche Internetseiten aufgrund von Programmierfehlern endlosschleifen erstellen.

Z.b werden relative Pfade an Links angehängt wodurch der Crawler dann so drüber Läuft:

http://beispiel.de/seite1/
http://beispiel.de/seite1/seite/
http://beispiel.de/seite1/seite/seite/
http://beispiel.de/seite1/seite/seite/seite1/

Jetzt suche ich eine möglichkeit das Problem zu umgehen, indem ich solche schleifen erkenne, eine Idee war z.b vom Quelltext einen Hash oder ähnlich zu bilden welcher sich auf einmaligkeit vergleichen lässt.

Eine andere Idee war die erste URL als String in der Zweiten zu ersetzen und die Zweite in der Dritten und dann zu vergleichen ob der "Rest" identisch ist.

Beispiel:

http://beispiel.de/seite1/seite/


seite/

http://beispiel.de/seite1/seite/seite/


seite/

Differenz ist gleich also ist es eine Endlosschleife. Problematisch wird es bei PHPsession ID's z.b welche bei jedem Aufruf neu Generiert werden

Ich würde mich über Ideen freuen wie man dieses am besten löst 😃

gruß
Scub

21.11.2011 - 19:29 Uhr

Hallo,

ich stehe vor der Aufgabe eine Liste mit Wörtern durchgehen zu wollen und zu überprüfen um welchen Typ (Nomen, Verb, Adjektiv) es sich dabei handelt.

Meine erste Idee war das ganze eventuell über eine Synonym DB via API laufen lassen zu können oder die Ausgabe von http://de.wiktionary.org zu parsen.

Dies würde allerdings ne Menge Traffic erzeugen und wäre sicher auch nicht die schnellste Lösung.

Daher war meine Idee ob man die Word Funktionen nutzen kann um an diese Daten zu kommen. Ich habe auch einige Beispiele zum Thema Rechtschreibprüfung via Word API gefunden allerdings nichts darüber wie man die Grammatik Infos auslesen kann?

Wäre für jede Hilfe dankbar.

gruß
Scub

04.09.2011 - 19:09 Uhr

Hallo,

ich habe ein Datatable mit den spalten

ID|NAME|OVER_ID|OVER_NAME

Dabei ist die ID eindeutig, und die OVER_ID gibt die ID des Übergeordneten Elements an.

Dieses versuche ich nun in einem Treeview abzubilden. Er wirft mir allerdings beim Debuggen folgende Exception:

Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs "System.StackOverflowException" ist in mscorlib.dll aufgetreten.

Hier der Code:


        private void Baum_Zeichen()
        {

           katVorschauTree.Nodes.Clear();


           DataRow[] rows = Produkte.Nodes.Select("over_name='Root'");


           foreach (ProdukteDS.NodesRow Row in rows)
           {

                   TreeNode Nod = new TreeNode(Row.name.ToString() + " - " + Row.id.ToString());
                   Nod.ImageIndex = 0;                 
                   Nod.Tag = Row.id.ToString();

                 
                   Baum_Vertiefen(Nod, Row.id.ToString());

                  
                   katVorschauTree.Nodes.Add(Nod);

                   Nod.Expand();
               
           }


        }
        private void Baum_Vertiefen(TreeNode nod_B, string nid)
        {

            DataRow[] rows = Produkte.Nodes.Select("over_id='" + nid + "'");


            foreach (ProdukteDS.NodesRow Row in rows)
            {
                TreeNode Neues_Nod = new TreeNode(Row.name.ToString());
                Neues_Nod.Tag = Row.id.ToString();
                Baum_Vertiefen(Neues_Nod, Row.id.ToString());
                nod_B.Nodes.Add(Neues_Nod);
            }
        }

Nach der Forumssuche finde ich immer den Hinweis das die Exeption meist durch Endlosschleifen verursacht wird. Aber irgendwie sehe ich bei mir keine Endlosschleifen.

Es sind auch nicht besonders viele Zeilen (Beim Debuggen ca. 120) im Datatable vorhanden.

Bin für jeden Tipp dankbar.

01.09.2011 - 00:57 Uhr

Hi,

ersteinmal vielen dank für die vielen Tipps und Beispiele.

Es soll nach der Klassenhierarchie priorisiert werden. D.h bei der IP
100.100.100.100

Ist die IP 101.100.100.100 besser als die IP 100.255.100.100 Da Ihre A Klasse eine andere ist.

Daher würd ein vergleich der Int werte wohl das beste sein. Werde sobald der Code steht Ihn hier nochmal posten.

gruß
scub

31.08.2011 - 19:39 Uhr

Hi,

ich stehe vor folgendem Problem:

Ich habe eine Liste mit IP Adressen:

91.122.13.25
91.122.13.30
91.122.13.75
77.125.14.78
77.124.48.22
91.124.13.25

Außerdem habe ich eine Liste mit weiteren IP Adressen z.b:

91.122.13.15
91.124.13.19
77.125.14.79

Jetzt möchte ich aus der ersten Liste die IP Adresse welche sich nach den IP Klassen geordnet am stärksten von der denen der zweiten Liste unterscheidet.

In diesem Fall wäre das dann ja 77.124.48.22 da der zweite Block nicht in der zweiten Liste auftaucht.

Ich stehe gerade etwas auf dem Schlauch wie ich das performancemäßig am besten berechne. Normalerweise würde ich aus den IP Adressen ein Array erstellen und diesen dann mit schleifen durchlaufen und zu jeder IP überprüfen ob Sie sich in in einem früheren Block oder in der Differenz des Blocks unterscheidet.

Gibt es es vll andere Ideen? Ich habe z.b daran gedacht die IP Adresse in ihrer Binärform und anschließend in eine Dezimalzahl zu wandeln. Damit müsste ich doch dann eigentlich auch die differenz hernehmen können?

vielen dank schonmal für jeden Tipp

gruß
Scub

19.08.2011 - 16:01 Uhr

Hi,

wenn ich in dem Dataset Designer ein Datatable inkl. TableAdapter erstelle wird mir das Dataset, der TableAdapter und der TableAdapter Manager in der Toolbox der Form angezeigt sodass ich diese auf das Form ziehen kann.

Es passiert aber relative oft das er mir die Komponenten nicht in der Toolbox anzeigt. Hin und wieder hilft es dann das Projekt über en Projektmappen Explorer neu zu erstellen, aber ebend nicht immer.

Ich konnte noch keine Regelmäßigkeit feststellen wann er das macht.

Hat jemand inen Tipp für mich woran es liegen könnte?

vielen dank schonmal für jede Hilfe 🙂

16.03.2011 - 11:02 Uhr

Vielen vielen dank,

du hast mich auf den Richtigen weg geschickt habs gefunden 🙂

Ich blende die verschiedenen Usercontrols ein / aus und habe in den UC's auf das ereigniss "VisibleChanged"

den Table Adapter gefüllt. Daran scheint es zu liegen:



        private void uebersicht_Panel_VisibleChanged(object sender, EventArgs e)
        {
            if (this.Visible == true)
            {

                this.TableAdapter.Fill(mainDataSet.daten);
            }
        }


Werde Sie jetzt auslagern und dann sollte es keine Probleme mehr geben 🙂

vielen dank nochmal

16.03.2011 - 10:51 Uhr

Hallo,

ich habe das Problem das wenn ich ein Usercontrol erstelle und es auf meine Form setze er beim Starten des Designers einen Fehler ausgibt und anschließend das UC nicht mehr angezeigt wird sondern eine Weiße Fläche welche ebenfalls eine Fehlermeldung enthält.

Kompiliere ich das Programm funktioniert es ohne Exception und auch das UC funktioniert problemlos.

Der Fehler beim Aufrufen des Forms im Designer lautet:

Fehlermeldung:
Das Steuerelement System.Windows.Forms.Form hat eine unbehandelte Ausnahme im Designer ausgelöst und wurde deaktiviert.

Ausnahme:

Der Zugriff auf die Datenbankdatei ist nicht zulässig. [ Filename = C:... ]

Stapelüberwachung
....

Nach dem wegklicken steht anstelle des UC in einer Rot umrandeten Fläche ebenfalls:

"Der Zugriff auf die Datenbankdatei ist nicht zulässig. [ Filename = C:... ]"

Das UC enthält ein Datagrid mit DB zugriff auf eine MSSQL CE Datenbank via Dataset.

Ich verstehe nicht wieso der Designer dort Probleme macht und es aber nach dem Kompilieren funktioniert 8o

Hoffe mir kann jemand helfen, und vielen dank im vorraus =)

04.03.2011 - 15:12 Uhr

verwendetes Datenbanksystem: SQL Compact

Hallo,

habe ein Formular unter C Sharp erstellt welches mittels Master Detail aufbau eine Combobox einbindet.

Es gibt also eine Tabelle Autos und eine Tabelle Baujahre. Die Baujahre werden in einer Combobox angezeigt und die entsprechende ID wird in die Tabelle Baujahre gepseichert.

Wenn ich jetzt z.b an die Combobox ein Baujahr sende was nicht existiert mittels:


comboBox2.Text = "1967";

Wir der eintrag ja einfach der Combobox hinzugefügt.

Wie schaffe ich es jetzt das er das neue Baujahr bei einem klick auf Save auch in die Baujahre Tabelle schreibt?

Ich weiß leider nicht genau wo ich da ansetzen muss?