Zunächst einmal Hallo,
mein erster Post in diesem tollen Forum, seit kurzem beschäftige ich mich mit C# und habe schon einiges hier lernen können.
Zu meinem Problem:
ich habe eine Combo-Box mit einer Access-Datenbank (genauer einer Tabelle) per Databinding verbunden und lasse die Combo-Box befüllen. Das funktioniert auch...
Nun würde ich gerne dem Anwender erlauben, dass er einen neuen Wert in die Combo-Box eintragen kann, in dem Moment wenn er nun das Element verlassen möchte soll eine Nachfrage kommen, ob der Wert in die Datenbank übernommen werden soll. Wenn ja, dann soll der Wert in die Datenbank geschrieben werden.
Meine Fragen:
LG und Danke im voraus...
Michael
Hallo micha_s und Herzlich Willkommen hier im Forum,
deine Fragen zielen ja eher in Richtung SQL allgemein ab,
zu testen ob ein wert in der Datenbank bereits existiert, könntest Du zb
ein
SELECT * FROM [TABLE] WHERE [FIELD] = [VALUE];
ausführen und dann zb ein Count auf die Rows oder halt nen count im SQL Statement.
und zum einfügen wäre es dieser Code
INSERT INTO [TABLE] ([FIELDS]) VALUES ([VALUES]);
eine recht Gute Hilfe an dieser Stelle wäre natürlich Google
Herzliche Grüße
Lars
Ich interpretiere die Frage mal als eine, wie das mit Databinding gehen könnte.
wusste ich auch nicht genau, habich jetzt ausprobiert, "leider" in VB.Net:
Private Sub ComboBox1_Validating(ByVal sender As Object, ByVal e As CancelEventArgs) _
Handles ComboBox1.Validating
If ComboBox1.SelectedValue Is Nothing Then
Dim s = ComboBox1.Text
Dim row = Tab_Kunden_KatBindingSource.AddNewX(Of AuftraegeDts.Tab_Kunden_KatRow)()
row.Kat_Bezeichnung = s
End If
End Sub
BindingSource.AddNewX() ist eine Extension, die BindingSource.AddNew() wrappert und als typisierte DataRow returnt.
<System.Diagnostics.DebuggerStepThrough()> _
<Extension()> _
Public Function AddNewX(Of T As DataRow)(ByVal subj As BindingSource) As T
Return DirectCast(DirectCast(subj.AddNew(), DataRowView).Row, T)
End Function
Das mit der MsgBox habich jetzt weggelassen, aus Faulheit.
(Ich hoff, du blickst trotzdem durch)
Achso: Combobox1 ist gebunden,
DataSource = Tab_Kunden_KatBindingSource
DisplayMember = Tab_Kunden_Kat.Kat_Bezeichnung
ValueMember = Tab_Kunden_Kat.Kat_ID
SelectedValue = Tab_Kunden.Kat_ID
und es geht darum, Kunden in Kategorien einzuteilen
Der frühe Apfel fängt den Wurm.
Hallo nochmal,
danke für den netten Empfang und die beiden Antworten, geht ja wirklich fix hier.
Ich war mir unsicher, ob sich die Anfrage eher auf die "Datentechn." oder die Windowsform (wegen der Combobox) bezieht, danke für das Verschieben.
Zum Thema SQL:
die Statements sind mir bekannt, aber ich weiss nicht wie ich die Rückgabe aus einem Statement weiter verarbeiten kann, wie der von Dir angesprochene Count auf die Rows.
Mit Google habe ich schon geschaut, aber kam da nicht weiter. Ich werde weiter probieren.
"BindingSource.AddNewX() ist eine Extension, die BindingSource.AddNew() wrappert und als typisierte DataRow returnt"
das kann ich mit meinen geringen Kenntnissen noch nicht verarbeiten, trotzdem ganz herzlichen Dank auch für den Lösungsansatz.
So, dann probiere ich mal weiter.
Gruss
Micha_S
Für untiges müsstest du aber wissen, wie man Comboboxen DataBindet, und im Sample hat das DGV auch eine ComboboxColumn, und die PrimKey-Generierung erfolgt im Client (erleichterts Abspeichern) und so Zeugs.
Gugge evtl. auch DataBinding-Uebungen und "Datenbank in 10 Minuten" auf Movie-Tuts
edit: kennst du schon die anderen Möglichkeiten der Informationsgewinnung , neben google ?
Der frühe Apfel fängt den Wurm.