Autor Beitrag
Silvernils
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 15.04.09 16:22 
Hey Leute
ich habe gestern einen nicht funktionierenden insertbefehl geschrieben, wäre schön wenn da mal einer drüber schauen könnte. ich versteh nämlich gar nicht, wo der fehler ist.
Folgender Code
ausblenden C#-Quelltext
1:
MySqlCommand cd = new MySqlCommand("insert into Mitglieder (Name,Vorname,Plz,Ort,Adresse,Ermaessigung,Telefon,Aktivitaet) values('" + textBox_name.Text + "','" + textBox_vorname.Text + "'," + Convert.ToInt16(textBox_plz.Text) + ",'" + textBox_ort.Text + "','" + textBox_adresse.Text + "'," + checkBox_ermaessigung.Checked + "," + Convert.ToInt16(textBox_telefon.Text) + "," + checkBox_aktivitaet.Checked + "+ );", conn);					


Achtung:
Die Namen der Textboxen sind alle richtig, was mich allerdings etwas irritiert sind die checkboxen. in der sql-datenbank sind die werte bool bzw tiny-int.
Vielleicht ist da irgendwas falsch.

Danke im Voraus!

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 15.04.09 17:20 
Was meint denn die DB dazu? Bzw. wie sieht der zusammengesetze String aus?
Außerdem solltest du statt String-Zusammensetzen lieber Parameter benutzen, wie es dir Jürgen in deinem ersten Thread gezeigt hat.

_________________
>λ=
Silvernils Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 15.04.09 18:50 
Nunja, wenn ich eine Datenbank nur Spalten mit Strings habe, funktioniert dieser Befehl.
Hab jetz allerdings noch die Int- sowie die bool bzw tinyInt-Werte drinne, die ich jetz eingebaut habe wie ich es im Internet an manchen stellen gelesen habe.
Funktioniert trotzdem nicht...ein Bekannter meinte es könnte an dem "CheckBox.Checked" liegen, da die DB das dann nicht als tinyInt erkennt oder wie auch immer.
bei den Spalten, die für Integer-werte vorgesehen sind (Telefon und PLZ,) habe ich den String erst nach Int16 konvertiert, das war laut Visual zu klein, mit Int32 hats dann funktioniert. jetz springt er beim klick auf den "eintragen-button" einfach raus und markiert nichtmal irgendwas im quelltext
:O

den zusammengesetzten string kopier ich dir später wenn ich daheim bin hier rein.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 15.04.09 20:26 
user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
ein Bekannter meinte es könnte an dem "CheckBox.Checked" liegen, da die DB das dann nicht als tinyInt erkennt oder wie auch immer.
Da "true" ein etwas komischer Int ist, könnte hier durchaus der Fehler stecken ;) . Also unbedingt Parameter benutzen, dann stellt sich das Problem erst gar nicht.

user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
jetz springt er beim klick auf den "eintragen-button" einfach raus und markiert nichtmal irgendwas im quelltext
Aus dem Bildschirm heraus und dir auf die Nase :lol: ? Oder gibts gar eine Fehlermeldung ;) ?

_________________
>λ=
Silvernils Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 16.04.09 02:10 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
ein Bekannter meinte es könnte an dem "CheckBox.Checked" liegen, da die DB das dann nicht als tinyInt erkennt oder wie auch immer.
Da "true" ein etwas komischer Int ist, könnte hier durchaus der Fehler stecken ;) . Also unbedingt Parameter benutzen, dann stellt sich das Problem erst gar nicht.

Was meinst du mit "Parameter benutzen"?:(
Zitat:

user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
jetz springt er beim klick auf den "eintragen-button" einfach raus und markiert nichtmal irgendwas im quelltext
Aus dem Bildschirm heraus und dir auf die Nase :lol: ? Oder gibts gar eine Fehlermeldung ;) ?


es passiert einfach nichts. ich hab darunter einen ExecuteNonQuery gesetzt, diese zeile markiert er und das wars. (wobei das völlig egal ist was danach kommt, der markiert einfach die nächste zeile.
keine meldung, einfach nichts ^^
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 16.04.09 11:29 
user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
Was meinst du mit "Parameter benutzen"?:(
Wie gesagt, schau dir Jürgens Code hier an.

_________________
>λ=
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 16.04.09 11:36 
user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
bei den Spalten, die für Integer-werte vorgesehen sind (Telefon und PLZ,) habe ich den String erst nach Int16 konvertiert, das war laut Visual zu klein, mit Int32 hats dann funktioniert.

Die solltest du bei String lassen. Wäre doch blöd, wenn plötzlich führende Nullen bei der Vorwahl oder der PLZ fehlen.

Für das Checkbox-Problem gibt es meines Wissens die Funktion BoolToInt. Die wandelt einen Boolschen Wert in einen Integer um, wie der Name der Funktion schon verrät. Sowas blödes. Das ist ja das C-Sharp-Forum. Aber ich meine, dass C# auch entsprechende Wandlungsroutinen hat.

Ansonsten solltest du den Rat annehmen und mit Parametern arbeiten.
Silvernils Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 17.05.09 18:53 
Hey leute :)
bisher hat alles funktioniert, danke für die hilfe!
bin nur momentan wieder an einem kleinen punkt, wo es hakt.
folgendes:

ich habe eine tabelle namens "Mitglieder" mit den spalten MitgliederID(PS), Name und Vorname.
mit folgendem Code frage ich die Datenbank ab:

ausblenden C#-Quelltext
1:
2:
3:
4:
data = new DataTable();
da = new MySqlDataAdapter("SELECT Name FROM mitglieder WHERE MitgliederID = '"+ textBox_ID.Text +"';",conn);
cb = new MySqlCommandBuilder(da);
da.Fill(data);


nehmen wir also mal an ich gebe in die Textbox "textBox_ID" eine 1 ein. jetzt soll er mir den zugehörigen Namen heraussuchen.
Diesen Namen möchte ich gerne in eine andere Textbox reinschreiben, hab aber leider keine ahnung, wie ich das anstellen soll.
einer eine idee?

übrigens: der code funktioniert so, mir wird alles prima in einem gridview angezeigt. es geht mir wirklich nur darum, wie man sowas in eine textbox hineinschreiben kann!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 17.05.09 20:47 
user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
nehmen wir also mal an ich gebe in die Textbox "textBox_ID" eine 1 ein. jetzt soll er mir den zugehörigen Namen heraussuchen.
Diesen Namen möchte ich gerne in eine andere Textbox reinschreiben, hab aber leider keine ahnung, wie ich das anstellen soll.
einer eine idee?

Es gibt verschiedene Wege. Eine (vermutlich die beste) ist DataBinding, unter diesem Stichwort solltest du genügend Hinweise finden.

user profile iconSilvernils hat folgendes geschrieben Zum zitierten Posting springen:
übrigens: der code funktioniert so, mir wird alles prima in einem gridview angezeigt.

Es ist trotzdem falsch! Eine Zahl darf nicht als String übergeben werden, sondern per Parameter als int.

Benutzt du wirklich ein GridView (von WebForms)? Oder nicht DataGridView? Oder vielleicht DataGrid? Das sind alles verschiedene Sachen, bitte exakte Angaben verwenden.

Jürgen

/Edit
Ich hätte die Antwort verweigern sollen. Diese Zusatzfrage hat nichts, aber auch gar nichts mit der Überschrift "SQL Insert" zu tun. Neues Problem -> neue Diskussion im richtigen Unterforum!
Silvernils Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 17.05.09 23:13 
wie man es macht, macht man es verkehrt :D
will doch nich für jede kleinigkeit einen neuen thread aufmachen. da dachte ich mir einfach, ich nehm meinen eigenen.
und übrigens benutze ich einen DataGridView. sorry, aber ich programmiere erst seit sehr kurzer zeit, wusste nicht, dass es da unterschiedliche gibt :/
ich werd mal schauen was ich mit deinem tipp so anfangen kann.
danke auf jeden fall für deine antwort, werd direkt mal schauen ob ich damit was anfangen kann!
wenn ich noch fragen hab, erstell ich einen neuen thread :P