- PR -

ConstraintExceptionについて

1
投稿者投稿内容
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2006-02-01 09:37
現在.NETにてWEBシステムの開発を行っております。
一覧表示時にDataGridを使用しているのですが、Fillを行うと以下のような
エラーが発生しています。(毎回同じSQLで発生)
「ConstraintException 制約を有効にできませんでした。1 つ以上の行に、Null か、一意でないか、または外部キー制約違反の値が含まれています。」が発生しています。

ここでの"strSql"は複数テーブルをJOINしてあるSELECT文です。また、"strSchema"はxsdファイルで作成したものです。
Try
 Dim cn As OdbcConnection = ・・・コネクション
 Dim adp As OdbcDataAdapter = New OdbcDataAdapter(strSql, cn)
 iCnt = adp.Fill(oDataSet, strSchema)
Catch ex As Exception 'DBの接続&取り出しエラー
'エラーログ出力
Return -1
End Try

テーブルのデータに関しましては、問題ありません。

原因がわかる方がいらっしゃいましたらご教授願います。
DB:SQLServer 2000
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-01 09:42
引用:

Draさんの書き込み (2006-02-01 09:37) より:

テーブルのデータに関しましては、問題ありません。


うーん。

引用:

ここでの"strSql"は複数テーブルをJOINしてあるSELECT文です。


どうやって結合条件を書いているかにも因りますが、
おそらくは一意制約違反にヒットしていると思われます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2006-02-01 10:14
じゃんぬねっとさんありがとうございます。

当SQLを単発で実行(.NETのサーバエクスプローラにて)すると問題ないのですが・・・
SQLが問題なのでしょうか、SELECT文で一意制約違反はありえるのでしょうか?
申し訳ありませんがお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-01 10:23
引用:

Draさんの書き込み (2006-02-01 10:14) より:

当SQLを単発で実行(.NETのサーバエクスプローラにて)すると問題ないのですが・・・


SQL コマンドとしての誤りがないだけでしょう。

引用:

SQLが問題なのでしょうか、SELECT文で一意制約違反はありえるのでしょうか?


SQL コマンドも、oDataSet の厳密な型も、oDataSet に対応するスキーマも判らないので何とも言えません。
とりあえず、そのコマンドで取得できるデータを見てください。

.xsd があるのであれば、minOccurs 属性のない列で null 違反が起きている可能性があります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2006-02-01 10:46
じゃんぬねっとさんありがとうございます。

SQLにて取得されるデータにnullは存在します。
minOccurs、mixOccurs属性の説明がプロパティーに記載されているのですが
よくわかりません。具体的に何を設定すればよいのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-01 11:54
引用:

Draさんの書き込み (2006-02-01 10:46) より:

SQLにて取得されるデータにnullは存在します。
minOccurs、mixOccurs属性の説明がプロパティーに記載されているのですが
よくわかりません。具体的に何を設定すればよいのでしょうか?


いや、あの、その、そもそも .xsd ファイルは存在しているんですか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2006-02-01 16:12
ありがとうございます。

.xsd ファイル存在しています。
DatasetのEnforceConstraintsのプロパティーをFALSEにすることで
解決致しました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)