1

ドロップダウン リストから値が選択されていない場合、UPDATE SQL コマンドはタイプのエラーをスローしますUpdate Statement Conflicts with Foreign Key Constraint。既知の値が選択されていないため、これは正常です。

これはどのように処理できますか?

ドロップダウンリストに入力する私のコード:

var titlesData = db.Query("SELECT TitleId, Name FROM Titles ORDER BY Name");
titlesListItems = titlesData.Select(i => new SelectListItem {
Value = i.TitleId.ToString(),
Text = i.Name,
Selected = i.TitleId == providerData.TitleId ? true : false
});

リストを表示する私のコード:

@Html.DropDownList("titlesCombo","-- Please select --",titlesListItems)

私のSQL文

@"INSERT INTO Providers
  (Ref, ProviderTypeId, CompanyName, CompanyTypeId, TitleId, FirstName, LastName)
  VALUES (@0,@1,@2,@3,@4,@5,@6)";
  db.Execute(updateCommand, refer, providerTypeId, companyName, companyTypeId, titleId, firstName, lastName)

If one of the "id" fields are null, the insert will fail. How do I exclude the INSERT of those fields when they have a null value ?

IFステートメントを使用してテーブルに「ダミー」ID値(たとえば「0」)を強制し、その値が見つかった場合は「選択済み」をfalseに設定することを考えましたが、結合された各テーブルの主キーができないため、それは不可能です手動で「0」(またはその他の値)に設定できます(自動インクリメント)。

解決策は何ですか?

各 (私はたくさんある) ドロップダウン リスト ボックスをテストして、値が選択されていないものを除外し、変数 SQL ステートメントを作成しますか? それはトリッキーで複雑に見えます!

4

1 に答える 1

1

データベースの ID フィールドを null 可能にするか、ポストバック ID フィールドを [必須] とマークして、オプションが選択されていないときに検証がトリガーされるようにする必要があります。

于 2012-09-29T23:13:45.090 に答える