- - PR -
DataGridを表示するとき、今度は・・・
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-19 17:17
お世話になっております。
以前、DataGridを使って質問をさせていただき、何とか問題解決ができたのですが、 今度は意味不明な・・・ よろしくお願いします。 .NET VBで開発しております。DBはSqlServerです。 SqlDataAdapter3.SelectCommand.CommandText = "SELECT * FROM ViewTbl;" SqlDataAdapter3.Fill(DataSet31) WrkGrid.DataSource = DataSet31 WrkGrid.DataBind() として、実行すると、 「制約を有効にできませんでした。1 つ以上の行に、Null か、一意でないか、または外部キー制約違反の値が含まれています。 」 ということを言ってきます。 データ行が0行のときは、何も言わず項目名だけ表示するのですが、 データを1行でも入れようなら、上記メッセージで表示してくれません。 Selectしているのは、Viewテーブルで、Viewはデータテーブルとマスタテーブルを 参照しています。 SQLレベルでは、実行可能なViewであることを確認しています。 どのような意味なのかおわかりになりますでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2004-08-19 17:59
DataSet31を、どのように構成していますか?その中の"ViewTbl"に、制約が設定されています。おそらく、VS.NETのXMLデザイナで、制約を追加していると思われます。
| ||||
|
投稿日時: 2004-08-19 18:04
Jittaさん、ご意見ありがとうございます。
DataSet31は、SqlAdapterの「データセットの生成」を選んで作成しました。 その中に制約があるということですが、作成時の制約でしょうか? それとも、SqlAdapterとDataSet31の制約でしょうか? | ||||
|
投稿日時: 2004-08-19 18:26
その後に、ファイルを開いて何か触りませんでしたか? | ||||
|
投稿日時: 2004-08-20 12:47
Jittaさんありがとうございます。
ん〜、何かファイルをいじったか? といわれると、ソースを記述しているので、触っていますね。 ということは、再度アダプターと、データセットを 再作成して、ウィザード通りにしておけばよいのですかね。 やってみたいと思います。 | ||||
|
投稿日時: 2004-08-21 17:57
お世話になっております。
すみません、SqlAdapterとDataSetを再作成しましたが、 「制約を有効にできませんでした。1 つ以上の行に、Null か、一意でないか、または外部キー制約違反の値が含まれています」 といわれます。 WebFormにDataGridを2つ配置しています。 1つのデータベースにアクセスし、2つのViewテーブルにアクセスしています。 1つのViewテーブルに1つのDataGridです。 Connectionは1つで、SqlAdapterは2つ、DataSetも2つ作成して 動作確認しています。 どなたかこんな経験されている方はいらっしゃいますでしょうか? | ||||
|
投稿日時: 2004-08-21 22:15
DataSet31 だと DataSet3.xsd というファイルがあるはずです。
「DataSet3.xsd」でなければ xsd 拡張子の中から開いて見つけてください。 開き方はソリューションエクスプローラの該当項目をダブルクリックするだけです。 データセット/XMLのタブをXMLにします。 こんな感じの行があるでしょう。 <xs:element name="自宅電話番号" type="xs:string" /> <xs:element name="自宅PCメールアドレス" type="xs:string" minOccurs="0" /> minOccurs="0" が無い行は「Null」を許容しない行です。 <xs:unique name="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:会員マスタ" /> <xs:field xpath="mstns:店舗コード" /> <xs:field xpath="mstns:会員コード" /> </xs:unique> こんな感じのブロックがあったらそれはプライマリキーです同じ組は許されません。 なぼなさんの思ったとおりになっているか確認してみてください。 プライマリキーはなく、「Null」を許容しない行はマスターと同じ状態のはずです。 _________________ 〜〜〜〜〜〜〜〜 えムナウ http://www.geocities.jp/mnow mnow@yahoo.co.jp 〜〜〜〜〜〜〜〜 [ メッセージ編集済み 編集者: えムナウ 編集日時 2004-08-21 22:18 ] | ||||
|
投稿日時: 2004-08-23 08:06
DataSetの作成を、どのようにしましたか?おそらく、viewではなく、tableを元に作成されており、tableの制約がそのまま継承されているようです。DataSetを編集して使わなければならないでしょう。・・・編集の仕方をここで説明するのは難しい。。。 |