|
分類:[.NET 全般]
環境: VS2010 VB.NET Formアプリ .NETFrameWork2.0
質問内容: 通常、問題なく下記コードでエラーなくFillできているのですが、 あるユーザのみ、Fillするときに下記実行エラーが発生するようになりました。
制約を有効にできませんでした。行に入力できるのは、 Null 以外の値、一意な値、あるいは外部キーですが、 この制約の違反が 1 つ以上の行で発生しています。
再現性があり、ユーザ様のAccessファイルでテストすると 常にエラーになります。 対象となるテーブルははオートナンバー型の主キーが1つ存在し、 それ以外の項目が20項目ぐらいあります。 テーブル内のデータを確認してみましたが 特に問題になるようなデータはありませんでした。
MissingSchemaAction.AddWithKeyを設定しない場合には なぜか上記の現象が解消します。
なぜ、このような現象になるのか? おわかりになる方、いらっしゃらないでしょうか?
ソース: Dim cnn As New OleDb.OleDbConnection
strTEMP = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*******;Jet OLEDB:Database Password=*********;" cnn.ConnectionString = strTEMP cnn.Open()
Dim oCmd As New OleDbCommand With oCmd .Connection = cnn .CommandText = "テーブル名" .CommandType = CommandType.TableDirect End With
Dim oDA As New OleDbDataAdapter(oCmd) oDA.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim oDS As New DataSet() oDA.Fill(oDS, "tbl")
|