私は小さな電話帳アプリケーションを構築していますが、フルネーム、ジョブ、Phone1、Phone2、Notes、SNプライマリのフィールドを持つ電話機キー。アクセスで受け入れられた入力に対してoledbexceptionがスローされました
fullnameとphone1を必須に設定し、fullnameの検証ルールをLen([FullName])>3
に設定し、phone1とphone2の両方の検証ルールをLike "[0-9]*"
に設定しました。検証ルールの検証メッセージも設定します。私は、データセットとTableAdapterのコードを生成するためのVisual Studioを使用してアクセスするデータベースを追加しましたWPFアプリケーションで
、これは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>
これはハンドラをクリックして保存します:
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);
}
}
PhonesDataSetPhonesTableAdapter
は次のように定義されています。
Global.projectName.PhonesDataSetTableAdapters.PhonesTableAdapter PhonesDataSetPhonesTableAdapter = new Global.projectName.PhonesDataSetTableAdapters.PhonesTableAdapter();
私はアプリケーションを起動してのphone1番号などのフルネームとジョブとしてprogrammer
と2137976
としてJohn
を置くときOleDbExceptionがあなたの電話番号は、文字が含まれている、それだけ含まれている必要があり
あるのphone1の検証メッセージと共にスローされます数字
しかし、それは何も手紙を含んでおらず、同じ入力をアクセスで試してみると、ここで何が起こっているのですか?どのように私はそれを動作させるのですか?
注:ここでは
は、この問題に関するいくつかの背景です。他の文字は文字でもかまいません。 –