SortOrder整数列を持つデータベーステーブルがあります。テーブル項目を追加および編集するためのUIには、Integerのドロップダウンリストがあり、ユーザーはこの項目を表示する場所をソート順で選択できます。私の質問は、リスト、{1,2,3,4,5、 "last"}、ユーザーがaa番号を選択した場合、そのアイテムをSortOrder属性にして、その 'SortOrder'現在のところ、「SortOrder」が高い項目だけでなく、「SortOrder」が低い項目には影響を与えない一方で、1つ(+ = 1)の項目だけでなく、 は、私が現在持っているパブリックモジュール「ユーティリティ」を使用してVB.NETやLINQのリストの項目の番号を変更するベストプラクティス? SQLまたはC#/ VB.NET
新MyDataContextがPublic Sub UpdateProductSortOrder(ByVal idx As Integer)
Dim products = (From p As Product In _db.Products _
Where p.SortOrder >= idx _
Select p).ToList()
For Each p As Product In products
p.SortOrder += 1
Next
_db.SubmitChanges()
End Sub
私がこの
Protected Overrides Sub AddItem()
Dim sortOrder As Integer = Int32.Parse(Server.HtmlEncode(ddlNewSortOrder.SelectedValue))
If (sortOrder >= 1) Then
Utilities.UpdateProductSortOrder(sortOrder)
Else
sortOrder = Utilities.GetNextProductSortOrder()
End If
Dim dic As New System.Collections.Specialized.ListDictionary()
dic.Add("PROD_Description", Server.HtmlEncode(txtNewDescription.Text))
dic.Add("Abbrev", Server.HtmlEncode(txtNewAbbreviation.Text.ToUpper()))
dic.Add("SortOrder", sortOrder)
ProductsGridSource.Insert(dic)
End Sub
をやっているとの項目を追加する場合は[OK]を動作するようですとして
プライベート_db
このような既存のアイテムを編集するときに時折エラーが発生する
保護サブ製品GridSource_Updating(ByVal送信者オブジェクト整数= DirectCast(e.NewObject、製品としてSystem.Web.UI.WebControls.LinqDataSourceUpdateEventArgs) 点心はsortOrder).SortOrder Utilities.UpdateProductSortOrder(はsortOrder) End Subのようヴァル電子
は、多分もっとeffecientありますベストプラクティス、私はこれを行う必要がありますか? アドバイスありがとうございます。サンディエゴで事前に
おかげで、 〜CK
私はこのアプローチが好きです。はい、私は私の問題を見ることができます。私はすべてに1を加えるだけで変更する必要のない値を変更しています。 Linqを使ってこれを効果的に実装するにはどうすればよいですか? – Hcabnettek