| |
VB.NET - Ein- und UmsteigerRe: Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: akop303 | Datum: 26.08.15 09:27 |
| Hi, da brauche ich weitere Infos.
Mit welcher Version des .NET Frameworks arbeitest du?
Mit welcher Datenbank?
Wie kommen die Daten aus der Datenbank in das DataSet bzw. DataTable?
Gruß
akop303
___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper | |
Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: fpsoft | Datum: 25.08.15 12:45 |
| Hallo,
gibt es eine einfache Möglichkeit (oder auch nicht so einfach), die Eingabemöglichkeit einer Textbox an die Größe des Datenbankfeldes zu binden (oder Eigenschaft setzen, wie auch immer)?
Ich habe das Problem, das ich die Textbox an ein Datenbankfeld gebunden habe
(Code: Textbox.DataBindings.Add("Text", DataSet.Tables("Tabellenname"), "Datenbankfeld")),
ich in der Textbox aber viel mehr Zeichen eingeben kann, als im Datenbankfeld zugelassen.
Beim Versuch zu speichern knallt es natürlich, wie löst man das in der Praxis?
Eigentlich eine ganz normale Notwendigkeit, konnte aber nichts darüber finden.
Für einen Tipp wäre ich echt dankbar.
Beste Grüße
(P.S. VB.NET-Anfänger)
____________________________________________
Nur die Dummen wissen alles selbst am besten.
Beitrag wurde zuletzt am 25.08.15 um 12:47:28 editiert. | |
Re: Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: akop303 | Datum: 25.08.15 14:31 |
| In der .NET Version 4.5.1 (mit der ich gerade arbeite) gibt es bei dem TextBox eine Eigenschaft MaxLength.
Wenn es die Eigenschaft in der Version mit der du arbeitest nicht gibt, kannst du die Länge z.B. so begrenzen:
(ich muss zugeben, dass das nicht die perfekte Lösung ist.)
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles _
TextBox1.TextChanged
If TextBox1.Text.Length > 10 Then TextBox1.Text = _
TextBox1.Text.Substring(0, 10)
End Sub Oder du prüfst die Länge bevor du speicherst.
MfG
akop303
___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper | |
Re: Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: akop303 | Datum: 25.08.15 15:29 |
|
Probier es so:
'Dein Code
Textbox.DataBindings.Add("Text", DataSet.Tables("Tabellenname"), _
"Datenbankfeld")
' Danach diese Zeile
Textbox.MaxLength = DataSet.Tables("Tabellenname").Columns( _
"Datenbankfeld").MaxLength ___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper | |
Re: Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: akop303 | Datum: 27.08.15 11:06 |
| Hallo,
so ich habe es nachgestellt aber leider habe ich nur Access 2007. Trotzdem funktioniert das bei mir mit deinem QuellCode nicht. (Also vDSDataSet.Tables("Tabellenname").Columns("Datenbankfeld").MaxLength liefert -1).
Aber wenn ich die Tabelle mit dem DataReader fülle, kriege ich die Länge des Feldes zurück.
Also, wenn du den OleDbDataAdapter nicht unbedingt brauchst, kannst du es so versuchen:
Dim vDSDataSet As New System.Data.DataSet()
Dim vDbCmdDetail As New OleDbCommand("SELECT * FROM Tabellenname", vgConDb)
'Dim vDbAdpDetail As New OleDbDataAdapter(vDbCmdDetail)
'vDbAdpDetail.Fill(vDSDataSet, "Tabellenname")
' Hier die Tabelle mit dem DataReader laden. -->
Dim reader As OleDbDataReader = vDbCmdDetail.ExecuteReader()
Dim tab As New DataTable("Tabellenname")
tab.Load(reader)
reader.Close()
vDSDataSet.Tables.Add(tab)
'<--
TextBox1.DataBindings.Add("Text", vDSDataSet.Tables("Tabellenname"), _
"Datenbankfeld")
' MaxLength setzen
TextBox1.MaxLength = vDSDataSet.Tables("Tabellenname").Columns( _
"Datenbankfeld").MaxLength MfG
akop303
___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper | |
Re: Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: akop303 | Datum: 28.08.15 08:50 |
| Hi,
ob das technisch in Ordnung ist kann ich dir nicht sagen, DataAdapter habe ich das letzte mal noch in der ITA Ausbildung benutzt und die ist schon 5 Jahre her. Wenn du den benutzt um die Daten zu speichern, dann kannst du den Reader nicht verwenden.
Wenn es Funktioniert ist doch alles gut. Oder?
MfG
akop303
___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper | |
Re: Textbox - Eingabemöglichkeit entsprechend des gebundenen Datenbankfelds | | | Autor: akop303 | Datum: 29.08.15 17:29 |
| Du könntest das ja in eine Funktion Auslagern.
Machst einfach ein neues Modul und dort ne Public Sub. Alternativ kannst du dein eigenes TextBox schreiben, der so was unterstützt.
MfG
akop303
___________________________________________________________________________________________
Jeder, der behauptet das gesamte .NET-Framework zu kennen ist entweder verrückt oder Sheldon Cooper | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|