Ich bin ein kleines Telefonbuch-Anwendung erstellen und ich speichern Telefone in einer Access-Datenbank in Tabelle namens Telefone, deren Felder sind: FullName, Job, Phone1, Phone2, Notizen und SN primäre Schlüssel.oledbexception wird für Eingabe, die von Zugriff akzeptiert wird
Ich habe gesetzt Fullname und phone1 auf erforderlich und stellen Gültigkeitsregel für Fullname zu Len([FullName])>3
und Gültigkeitsregel für beide phone1 und phone2 zu Like "[0-9]*"
, habe ich auch Prüfungsmeldungen für die Validierungsregeln festgelegt.
in einer WPF-Anwendung, die ich die Access-Datenbank unter Verwendung von Visual Studio hinzugefügt habe den Datensatz und Tableadapter-Code zu generieren, ist dies MainWindow.xaml:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="253" Width="685">
<Grid Height="206" Width="658">
<Label Content="FullName" Height="28" HorizontalAlignment="Left" Margin="12,12,0,0" Name="Label1" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="78,16,0,0" Name="FullName" VerticalAlignment="Top" Width="185" />
<Label Content="Job" Height="28" HorizontalAlignment="Left" Margin="29,46,0,0" Name="Label2" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="78,46,0,0" Name="Job" VerticalAlignment="Top" Width="185" />
<Label Content="Phone1" Height="28" HorizontalAlignment="Left" Margin="22,75,0,0" Name="Label3" VerticalAlignment="Top" />
<Label Content="Phone2" Height="28" HorizontalAlignment="Left" Margin="269,16,0,0" Name="Label4" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="78,75,0,0" Name="Phone1" VerticalAlignment="Top" Width="110" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="325,21,0,0" Name="Phone2" VerticalAlignment="Top" Width="110" />
<Label Content="Notes" Height="28" HorizontalAlignment="Left" Margin="274,56,0,0" Name="Label5" VerticalAlignment="Top" />
<TextBox Height="95" HorizontalAlignment="Left" Margin="325,60,0,0" Name="Notes" VerticalAlignment="Top" Width="328" AcceptsReturn="True" AcceptsTab="True" />
<Button Content="Save" Height="37" HorizontalAlignment="Left" Margin="274,161,0,0" Name="Button2" VerticalAlignment="Top" Width="135" />
</Grid>
dies Handler speichern klicken:
private button2_Click(object sender , RoutedEventArgs e)
{
try
{
PhonesDataSetPhonesTableAdapter.Insert(FullName.Text, Job.Text, Phone1.Text, Phone2.Text, Notes.Text);
} catch(OleDbException ex) {
MessageBox.Show(ex.Message);
}
}
die PhonesDataSetPhonesTableAdapter
ist wie folgt definiert:
Global.projectName.PhonesDataSetTableAdapters.PhonesTableAdapter PhonesDataSetPhonesTableAdapter = new Global.projectName.PhonesDataSetTableAdapters.PhonesTableAdapter();
Wenn ich starten Anwendung und setzen John
als Fullname und programmer
als Job und 2137976
als phone1 Nummer ein OleDbException mit der Validierungsnachricht für phone1 geworfen wird, die
Ihre Telefonnummer enthält Briefe, sollte es nur enthalten Zahlen
aber es enthält keinen Brief und wenn ich den gleichen Eingang durch Zugang versuche, akzeptiert es, was ist hier los? und wie kann ich es funktionieren lassen?
Beachten Sie, dass Ihr Ausdruck wertet nur das erste Zeichen der Telefonnummer. Alle anderen Zeichen können Buchstaben sein. –