(MySQL) Data to long

Alfred_

Erfahrenes Mitglied
Hi,
es ist mir wirklich unangenehm, mich nochmals wegen einer Frage zu outen :) ,
aber wenn ich ein Problem habe, dann möchte ich dieses auch gelöst wissen.
Bei 3 Feldern gab es keine Rückmeldung, aber bei 28 Feldern bekam ich folgende Fehlermeldung: #22001 Data to long for Columns at line1
Code:
    insertDatCom = New MySqlCommand( _
    "INSERT INTO tabelle1(Datum, Wotag, Runde, .., .., .., .., .., .., .., " & _
    "..., ..., .,. .., ..., ..., ..., ..., ..., ...," & _
    ".., .., .., .., .., .., .., ..) " & _
    "VALUES (?txtDatum, ?cboWoTag, ?txtRunde, ?..., ?...,? ..., ?..., ?..., " & _
    "?..., ?..., ?..., ?..., ?..., ?..., ?..., " & _
    "?..., ?..., ?..., ?..., ?.., ?.., " & _
    "?..., ?..., ?..., ?..., ?..., ?..., ?...)", myconn)
Da ich mir nicht vorstellen kann, dass mit 28 Feldern in einer Tabelle die Fahnenstange erreicht ist, würde ich gerne wissen was ich falsch gemacht habe.
Ehrenwort! Für einige Zeit werde ich mich nicht mehr zu Wort melden.;-)
Danke
 

hagbard_celine

Mitglied
"#22001 Data to long for Columns" kommt zB wenn man versucht "123456" in einer Zelle mit den Eigenschaften Varchar(5) speichert, als die Fehlermeldung bezieht sich nicht auf eine Zeile sondern auf eine Zelle
 

Alfred_

Erfahrenes Mitglied
Hi, danke für Deinen Tip!
Tatsächlich tauschte ich 2 Textboxen aus ohne die Eingabelänge zu korrigieren (war auf 0 gestellt).
Trotzdem erfolgte die Fehlermeldung:#HY000 uncorrect arguments. Lt. Referenz ist diese Fehlermeldung nicht genau zuzuordnen.
Daraufhin habe ich von Anbeginn (Datum) jedes Feld durchgearbeitet und bin dahintergekommen, dass die Felder Datum, WoTag und Runde exact übernommen, aber die darauffolgenden Felder Z1 bis ZZ nicht deckungsgleich, sondern nur jedes 2. Feld akzeptiert wurden. In der Eingabemaske gabe es keine Rückmeldungen:
Beispiel:
01.01.2005| Mi | 15 | 1 | 0 | 2 | 0 | 3 | 0 | 4 ;
Klar, dass der Compiler störrisch wurde!
Ich hoffe Du hast eine Lösung.
Zum Schluß noch den
Code:
    insertDatCom = New MySqlCommand( _
    "INSERT INTO Tabelle1(Datum, Wotag, Runde, Z1, Z2, Z3, Z4, Z5, Z6, ZZ) VALUES (?txtDatum, ?cboWoTag, ?txtRunde, ?txtZ1, ?txtZ2, ?txtZ3, ?txtZ4, ?txtZ5, ?txtZ6, ?txtZZ)", myconn)
    insertDatCom.Parameters.Add("?txtDatum", MySqlDbType.Date)
    insertDatCom.Parameters.Add("?cboWoTag", MySqlDbType.VarChar)
    insertDatCom.Parameters.Add("?txtRunde", MySqlDbType.VarChar)
    insertDatCom.Parameters.Add("?txtZ1", MySqlDbType.Byte)
    insertDatCom.Parameters.Add("?txtZ2", MySqlDbType.Byte)
    insertDatCom.Parameters.Add("?txtZ3", MySqlDbType.Byte)
    insertDatCom.Parameters.Add("?txtZ4", MySqlDbType.Byte)
    insertDatCom.Parameters.Add("?txtZ5", MySqlDbType.Byte)
    insertDatCom.Parameters.Add("?txtZ6", MySqlDbType.Byte)
    insertDatCom.Parameters.Add("?txtZZ", MySqlDbType.Byte)
'---------------------------
    insertDatCom.Parameters("?txtDatum").Value = txtDatum.Text
    insertDatCom.Parameters("?cboWoTag").Value = cboWoTag.Text
    insertDatCom.Parameters("?txtRunde").Value = txtRunde.Text
    insertDatCom.Parameters("?txtZ1").Value = txtZ1.Text
    insertDatCom.Parameters("?txtZ2").Value = txtZ2.Text
    insertDatCom.Parameters("?txtZ3").Value = txtZ3.Text
    insertDatCom.Parameters("?txtZ4").Value = txtZ4.Text
    insertDatCom.Parameters("?txtZ5").Value = txtZ5.Text
    insertDatCom.Parameters("?txtZ6").Value = txtZ6.Text
    insertDatCom.Parameters("?txtZZ").Value = txtZZ.Text
     Try
      insertDatCom.ExecuteNonQuery()
    Catch myerror As MySqlException
      MsgBox("Eingabefehler: " & myerror.Message)
    End Try
Jedenfalls bedanke ich mich jetzt schon für Deine Hilfe. Schöne Grüße
Die Lösung liegt vermutlich darin begründet:
Code:
    If Integer.TryParse(txtZ1.Text, z) Then
      txtZ1.Text = z.ToString("N0")
    Else
      'MsgBox("Keine Eingabe", MsgBoxStyle.Critical, "Fehler")
      txtZ1.Focus()
    End If
weil ich den Datentyp auf
Code:
    insertDatCom.Parameters.Add("?txtZ1", MySqlDbType.Byte()
gesetzt habe.
Jetzt wird alles, wie gewünscht, richtig übernommen.
In diesem Zusammenhang bedanke ich mich bei allen, die mich mit "Engelsgeduld" unterstützt haben. Die Umstellung von VB6 auf VN.Net in Verbindung mit MySQL war doch nicht im "Vorbeigehen" zu erledigen.
Meine strikte "voreingenommene" Ablehnung gegenüber .Net lockert sich immer mehr und vielleicht ....
Spaß beiseite, nochmals herzlichen Dank (jetzt gehe ich mal auf ;-) )
 
Zuletzt bearbeitet: