CSVで一覧表を出力するASP.NETのアプリで、ちょっと見出しの名前を変えたらエラーが出てしまってしばらく悩みました。
制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、 あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。
キーワードで検索するといくつか該当パターンがヒットするのですが、こちらは以下の原因でした。
- 2つの検索結果をDataTable.Mergeで連結している
- 片方のSelect文の列名(As なんとか)を変えてしまった
列名まで一緒じゃないとNGなんですね。
ちなみにほかのケースについては以下のブログで。
- 制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。/Remember The Time
- http://www.remember-the-time.xyz/2015/04/null-1.html
- 制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。/dechnostick's blog
- http://dechnostick.hatenablog.com/entry/2015/01/11/080000