- - PR -
データセットを使ったレコードの追加(ADO.NET)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-04-15 10:54
こんにちは。
“ADO.NET基礎講座”を読みながらADO.NETを調査しているものです。 この連載の5回目“データセットを使ったレコードの追加”のソースコードについて 質問があります。 ここで、データアダプタのInsertCommandプロパティを設定して、 Updateメソッドを呼び出してデータ挿入をするソース(insertds.cs)があります。 このソースを参考に、VB.netに置き換え、実行してみましたが、 da.update の場所でエラーになってしまいます。 SqlException例外を取得し、メッセージを見ると、 -------------------------------------------------- INSERT ステートメントは COLUMN CHECK で、 制約 'CK__publisher__pub_i__7C8480AE' と矛盾しています。 矛盾が発生したのは、 データベース 'pubs'、 テーブル 'publishers', column 'pub_id' です。 -------------------------------------------------- というエラーのようです。 pub_id のチェック制約に引っかかっているようですが、 重複しているわけでもなく、サイズなどがオーバしているわけでもなく、 なぜエラーが表示されているかわかりません。 VB.NETの書き方が悪いかと思い、ダウンロードしたCSファイルを利用しましたが、 同様の場所でエラーになってしまいます。 このソースを実行して、何か問題になった方などいらっしゃいますでしょうか。 ちなみに、環境は、Visual Studio .NET 2003 + MSDE です。 |
|
投稿日時: 2004-04-15 12:16
ADO.NETの連載記事を確認していませんが、
エラーメッセージから判定するに、 publishersテーブルにInsertするpub_idが CHECK制約で指定された値以外になっているからではないでしょうか。 「重複しているわけでもなく、サイズなどがオーバしているわけでもなく(略)」 という書き込みがありますが、 この”サイズなどがオーバしているわけでもなく”の意味が ”CHECK制約の制約式の条件を満たしている” だとしたら、以下の書き込みは無視して下さい。 pubsデータベースのpublishersテーブルをデザインモードで開き、 デザイン画面上でマウスを右クリックし、「制約のチェック」を 実行してみてください。 CHECK制約の詳細が表示されます。 指定したpub_idがこの条件を満たしていないのだと思います。 |
|
投稿日時: 2004-04-15 13:15
聖人@SKBさん、回答ありがとうございます。
ご連絡いただいた、制約チェックの画面、 早速調べてみます。 結果はまたご連絡します。 |
|
投稿日時: 2004-04-16 09:46
こんにちは。
聖人@SKBさんのいただいた情報を元に早速調べました。 おっしゃるとおりのチェック制約が見つかりました。 別のデータベースを見ていたという凡ミスも重なり、 回答に時間がかかってしまいました。 ありがとうございます。 |
1