Laden...

Forenbeiträge von Tiega Ingesamt 16 Beiträge

20.11.2013 - 10:11 Uhr

Joa wie schon gesagt das ist ja nur eine 1 malige Sache und dafür hab ich mir das nötigste zusammengegoogelt^^

Bin nicht wirklich fit in C# 😄

20.11.2013 - 08:32 Uhr

Okay hab es jetzt mal auf deine Vermutung hin geändert in:


command = new MySql.Data.MySqlClient.MySqlCommand();
                conn = new MySql.Data.MySqlClient.MySqlConnection();
                conn.ConnectionString = myConnectionString;
                conn.Open();
                command.Connection = conn;
                command.CommandText = "INSERT INTO maschinen_typen VALUES (null, @bezeichnung, @serie, @hersteller, @kategorie, @notizen, @pressX)";
                command.Prepare();
                command.Parameters.Add("@bezeichnung", MySql.Data.MySqlClient.MySqlDbType.Text);
                command.Parameters.Add("@serie", MySql.Data.MySqlClient.MySqlDbType.Int32);
                command.Parameters.Add("@hersteller", MySql.Data.MySqlClient.MySqlDbType.Int32);
                command.Parameters.Add("@kategorie", MySql.Data.MySqlClient.MySqlDbType.Int32);
                command.Parameters.Add("@notizen", MySql.Data.MySqlClient.MySqlDbType.Text);
                command.Parameters.Add("@pressX", MySql.Data.MySqlClient.MySqlDbType.Int32);
                foreach (string[] t_typen in t_typenListe)
                {
                    command.Parameters["@bezeichnung"].Value = t_typen[0];
                    command.Parameters["@serie"].Value = t_typen[1];
                    command.Parameters["@hersteller"].Value = t_typen[2];
                    command.Parameters["@kategorie"].Value = t_typen[3];
                    command.Parameters["@notizen"].Value = t_typen[4];
                    command.Parameters["@pressX"].Value = t_typen[5];
                    textBox.Text = t_typen[0] + "\r\n";
                    if (t_typen[2] != null)
                    {
                        command.ExecuteNonQuery();
                    }                    

                }
                conn.Close();

Sollte ja so alles in MySql-Typen sein, kracht aber trotzdem an der gleichen stelle 😦

Sonst noch eine Idee?

EDIT:

Okay hab den Fehler gefunden, es lag gar nicht an der "321" sondern an der "Serie" da ist mir bei der Aufbereitung ein Fehler unterlaufen >.< da stand nämlich ein STRING drin obwohl INT gefordert war.

Ist natürlich super wenn man bei der Fehlersuche von Anfang an den falschen Ansatz hat 😄

Trotzdem Danke 😃

19.11.2013 - 15:50 Uhr

Ganz ehrlich, ich habe noch nie in der Kombination C#/MySql gearbeitet und hab mir schnell gefährliches Halbwissen zusammengegooglet >.<

Ich hab das jetzt auch mal mit "TEXT" versucht kommt aber der gleiche fehler:

Fehlermeldung:
System.FormatException: Die Eingabezeichenfolge hat das falsche Format.
bei System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
bei System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
bei System.String.System.IConvertible.ToInt32(IFormatProvider provider)
bei System.Convert.ToInt32(Object value)
bei MySql.Data.Types.MySqlInt32.MySql.Data.Types.IMySqlValue.WriteValue(MySqlPacket packet, Boolean binary, Object val, Int32 length)
bei MySql.Data.MySqlClient.MySqlParameter.Serialize(MySqlPacket packet, Boolean binary, MySqlConnectionStringBuilder settings)
bei MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName, Int32 parameterIndex)
bei MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet)
bei MySql.Data.MySqlClient.Statement.BindParameters()
bei MySql.Data.MySqlClient.Statement.Execute()
bei MySql.Data.MySqlClient.PreparableStatement.Execute()
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
bei MSSQLToMySql.Form1.typenImport_Click(Object sender, EventArgs e)

PS:Sry Zeile nicht mitkopiert >.<... "ZEILE: 433 command.ExecuteNonQuery();"

19.11.2013 - 15:29 Uhr

verwendetes Datenbanksystem: MySql

Hey Leute,

ich bin gerade dabei Daten aus einer MSSql-DB in eine MySql zu schaufeln und bin jetzt über einen Fehler gestolpert.

hier ein ausschnitt aus der Reader schleife, so lese ich die Daten aus der MSSql aus:


while (reader.Read())
            {
                typen[0] = reader[0].ToString();
                typen[1] = reader[1].ToString();
                if (typen[1] == "")
                {
                    typen[1] = null;
                }
                typen[2] = reader[2].ToString();
                if (typen[2] == "")
                {
                    typen[2] = null;
                }
                typen[3] = reader[3].ToString();
                if (typen[3] == "")
                {
                    typen[3] = null;
                }
                typen[4] = reader[4].ToString();
                if (typen[4] == "")
                {
                    typen[4] = null;
                }
                typen[5] = reader[5].ToString();
                if (typen[5] == "")
                {
                    typen[5] = null;
                }
                typenListe.Add(typen);
                typen = new string[10];

            }
            reader.Close();

Und weiter unten nach einigen Aufbereitungen will ich die wie folgt in die MySql schreiben.


command = new MySql.Data.MySqlClient.MySqlCommand();
                conn = new MySql.Data.MySqlClient.MySqlConnection();
                conn.ConnectionString = myConnectionString;
                conn.Open();
                command.Connection = conn;
                command.CommandText = "INSERT INTO maschinen_typen VALUES (null, @bezeichnung, @serie, @hersteller, @kategorie, @notizen, @pressX)";
                command.Prepare();
                command.Parameters.Add("@bezeichnung", MySql.Data.MySqlClient.MySqlDbType.VarChar);
                command.Parameters.Add("@serie", SqlDbType.Int);
                command.Parameters.Add("@hersteller", SqlDbType.Int);
                command.Parameters.Add("@kategorie", SqlDbType.Int);
                command.Parameters.Add("@notizen", MySql.Data.MySqlClient.MySqlDbType.VarChar);
                command.Parameters.Add("@pressX", SqlDbType.Int);
                foreach (string[] t_typen in t_typenListe)
                {
                    command.Parameters["@bezeichnung"].Value = t_typen[0];
                    command.Parameters["@serie"].Value = t_typen[1];
                    command.Parameters["@hersteller"].Value = t_typen[2];
                    command.Parameters["@kategorie"].Value = t_typen[3];
                    command.Parameters["@notizen"].Value = t_typen[4];
                    command.Parameters["@pressX"].Value = t_typen[5];
                    textBox.Text = t_typen[0] + "\r\n";
                    if (t_typen[2] != null)
                    {
                        command.ExecuteNonQuery();
                    }                    

                }
                conn.Close();

Jetzt kommt nach 2030 Datensätzen der Fehler das "@bezeichnung" das falsche Format hat, wird als INT geshen. In der Variable/Parameter ist auch der Wert "321" aber warum will der das unbedingt als INT anerkennen? Ich mein es kommt doch aus einem String-Array und selbst mit ".ToString()" oder einem cast ändert sich nicht an dem Fehler.

Jemand eine Idee?

Vielen Danke

19.09.2013 - 14:33 Uhr

Okay, kannst du mir einen solchen Webservice nennen?

19.09.2013 - 13:44 Uhr

Tut mir leid das ich alle so undeutlich Beschreibe, aber IIS und Replikationen sind überhaupt nicht mein Gebiet... Trotzdem erstmal danke für die Geduld, ich versuch es jetzt noch mal.

Also diese Server stehen bei uns:

Server 1: Arbeitsserver

  • Hauptdatenbank
    • Abonnent von Replikationsserver

Server 2: Replikationsserver

  • Zwischenspeicherdatenbank(wenn man das so nennen kann)
    • Verleger
    • VERMUTUNG: Push-Merge zum Hauptserver
  • IIS-Server
    • SQL Server WebSync ISAPI, replisapi.dll(mehr weiß ich nicht)

Wenn die Laptops jetzt Syncen möchten verbinden diese sich mit der WebSync ISAPI, diese leitet dann die anfrage an den SQL-Server weiter.

Laut der Microsoft Doku muss dafür der IIS wohl im 32bit Modus laufen, warum kann ich dir nicht sagen. Die replisapi Sync Tabellenweise und will die jeweilige Tabelle immer komplett im RAM haben.

Ich hoffe damit kannst du mehr anfangen. Mehr weiß ich leider nicht

19.09.2013 - 11:17 Uhr

Ja mir ist schon klar das der IIS kein Repl-Server ist sondern ein Web Server....

Aber die Replikation läuft ÜBER den IIS, und der IIS will halt den vom SQL-Server bereitgestellten Snapshot in den RAM zu landen, da die Replikation über den IIS nur im 32BIT modus klappt ist halt bei ~2-2,5GB Schluss.

EDIT: DFS funktioniert meines wissens nur über einen VPN. Also für den Laptop in China im Zug eher unbrauchbar.

19.09.2013 - 09:54 Uhr

verwendetes Datenbanksystem: SQL Server 2005 und 2008

Halle liebe Leute,

da die Programmierer der Verwaltungssoftware in unserem Haus so schlau waren alle Bilder komplett in der Datenbank zu speichern ist diese jetzt selbst nach allen Archivierungsversuchen endgültig an die magische ~2GB grenze des IIS gestoßen.

Das Replikationssystem besteht aus:

  1. Arbeitsserver(Hauptserver im LAN)
  2. Relplikationsserver(LAN)
  3. Laptops(WEB)

Die Web Replikation wird ausschließlich für Laptops benutzt und diese brächten theoretisch gar nicht alle Bilder, jetzt war ich am überlegen als Übergangslösung einen Filter einzubauen. Das Problem an der Sache aber da der Haupt- und Repl-Server sich gegenseitig mergen werden durch den Filter auch Bilder auf dem Hauptserver gelöscht, was Problematisch ist.

Diese ~2GB grenze ist ja schon ein lang diskutiertes Problem und klar ist das die Bilder aus der DB raus müssen.

Aber gibt es nicht noch eine Übergangslösung? Kann man nicht die Filter aus Abo-Seite setzten, oder hat das keinen Einfluss auf den Snapshot der vom IIS in den RAM geladen wird?

Viele Grüße

Tiega

03.06.2013 - 08:53 Uhr

Also die zZ ist es noch so, wir arbeiten noch mit denen zusammen. Die rechte gehören alle uns darauf haben wir bei der Auftragsvergabe bestanden.

Ich bin recht neu in der Firma und soll einen Teil der IT Koordinierung und Programmierung übernehmen. Doch die Dienstleister versuchen mit Pippi Gelb zu drucken. Das was die abliefern ist nichts halbes und nichts ganzes. Deswegen ist mir das jetzt zu Bunt ab und will mir das mal selber angucken.

C# kann ich ja fließend, nur DNN ist ein wenig gewöhnungsbedürftig, was mich jetzt aber nicht großartig behindern sollte.

Da ihr euch aber sicher vorstellen könnt das so ein Dienstleister nicht gerne zuguckt das denen ihre arbeit weggenommen wird ist das immer so ein trara mit denen den Quellcode zu bekommen. Deswegen wollte ich vorher ausloten ob es nicht einfachere Wege gibt an den Quellcode zu kommen.

31.05.2013 - 10:23 Uhr

Hallo liebe Leute,

ich wollte mal fragen wie ich Module die von einem Dienstleister für uns Programmiert wurden einsehen bzw ändern kann.

Bin der totale DNN Anfänger und mag es auch nicht wirklich. Und da es ja bevor es auf dem Webserver kommt durch den Compiler gejagt benötige ich doch eigentlich die Projekt Daten von Visual Studio oder?

Viele Grüße

Tiega

28.05.2013 - 09:08 Uhr

mmh ja hab auch lange überlegt wie ich das beschreibe.
Aber ich mach am besten mal ein beispiel:

Wir Handeln mit Gebrauchten Schiffsmotoren. Da der Markt an sich ja nicht so leicht durch eigene Verkäufe zu analysieren, weil die Absatzzahlen einzelner Motoren zu klein sind, ist wollen wir alle Emails auf Angebote und Anfragen durchsuchen um dadurch einen Analyse anzustellen wie viele Motoren so auf dem Markt sind und wichtiger einen Durchschnittspreis errechnen.

Da jetzt natürlich die Angebote und Anfragen nicht immer einem Standard Format folgen muss ich nach mit Stichwörtern(Motorhersteller, Baureihe, Laufzeit, Währung) die Motoren Identifizieren und Doppelte anhand der Laufzeit erkennen.

Kann man mit dem Beispiel was anfangen?
Ich hoffe 😃

Viele Grüße

Tiega

24.05.2013 - 13:31 Uhr

Hallo liebe Leute,

ich befasse mich zur Zeit mit Statistik und Analyse von Texten(Emails, WebCrawling) bzw ich versuche mir da Wissen anzueignen.

Hab mich jetzt viel mit regex beschäftigt ist auch soweit alles verstanden. Wollte euch jetzt mal fragen ob ihr da gute Bücher/Tutorials/Videos zu dem Thema kennt da es doch sehr komplex ist.

Danke schon mal im Vorraus

Viele Grüße

Tiega

27.03.2013 - 14:15 Uhr

Hallo Sparkle,

naja Rechte Problem kann ja eigentlich da wie schon gesagt der Großteil der Bilder ja erstellt wird und nur einige wenige nicht.

in array[2] steht nur die ID aus der DB.

GEPRIESEN SEI MrSparkle!!!!!!

man ey ich hab halt gegooglet wie man Bilder erstellt und dabei hat er mir halt nur den Umweg über das Image-Object vorgeschlagen.

Hätte ich gewusst das ich auch einfach File.WriteAllBytes nehmen kann 😄

DENN DAMIT KLAPPT ES OHNE PROBLEME!!! 😄:D

Vielen lieben danke 😄 ich hab echt den ganzen Tag da dran gesessen und versucht das zum laufen zu kriegen... Und dann ist die Lösung sooo simpel 😄

27.03.2013 - 11:22 Uhr

Hallo liebe Leute,

bitte Steinigt mich nicht da ich mit diesem Leidigen Thema komme. Ich hab mich die letzen 2std durch zig Posts gelesen aber keiner hat mir geholfen.

Es geht um folgenden Code:


 while (reader1.Read())
                {
                    picBytes = null;
                    picBytes = (byte[])reader1.GetValue(0);
                    if (picBytes != null)
                    {
                        try
                        {
                            ms = new MemoryStream(picBytes, 0, picBytes.Length);
                            returnImage = Image.FromStream(ms, true);
                            returnImage.Save(@"C:\temp\" + array[2] + ".jpg");
                            returnImage.Dispose();
                            ms.Dispose();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e + array[2] + ".jpg");
                        }
                    }
                }
                reader1.Close();

Die meisten Fehler in den anderen Post sind ja entweder Rechte Probleme oder der Stream wird zu früh aufgelöst blablaa...

Aber das kann bei mir ja eigentlich nicht der Fall sein DENN, unter XP gibt es keine Probleme nur unter Win7 64bit. Zudem werden gefühlte 500 Bilder erstellt und 50 nicht.

Ich bin am Verzweifeln. Ich hab auch schon versucht vor dem Speichern den Stream in ein tmpImage zu lesen und diese tmpImage dann in returnImage zu speichern. Ändert aber leider nichts.

Der Fehler:> Fehlermeldung:

System.Runtime.InteropServices.ExternalException (0x80004005): Allgemeiner Fehler in GDI+.
bei System.Drawing.Image.Save(String filename.......) usw

20.02.2013 - 14:55 Uhr

Hallo liebes Forum,

folgende Problematik:

Es werden über eine Verwaltungssoftware Emails verschickt. Diese Emails haben ein HTML Template und die Variablen werden per "Eigene Skript-Sprache" als String eingefügt. bsp.:

VARIABLE

der Parser läuft dann das Template durch und füllt das Template mit Inhalt. Der Parser kann auf eine if exists abfrage und arrays per FOR-EACH laden und diese dann per key ausgeben. Der Key sieht genauso aus wie die Var.:

KEY

Das ganze wird mir jetzt aber zu unflexibel ich brauch auch:

  • if abfragen
  • eig. Variablen
  • Schleifen
  • Switch

so einen kleinen Standard Umfang halt^^

Doch ich glaube die eigene "Skript-Sprache" weiter zu verfolgen wäre zu umständlich und zu Zeit intensiv.

Deswegen hab ich mir überlegt einfach die Templates als PHP auf einen Lokalen Server zu speichern und diese dann per C# ausführen und den HTML text dann als Email Body zu nehmen.

Wie findet ihr den Ansatz? Gibt es besser Möglichkeiten ohne direkt in C# die Templates zu erstellen?

Wie sieht es da Perfomance technisch aus wenn ich mal einen Newletter mit 10.000 Mails verschicke?

Ich hoffe ihr versteht was ich meine und könnt mir tipps geben 😃

Viele grüße