从DataGrid中添加或删除项目 - vb.net compact framework
问题描述:
我正在开发一个项目,允许用户使用Windows Mobile设备的手持设备获得订单。我使用datagrid来显示现有订单,并希望通过单击按钮来添加项目,或者通过从数据网格中选择来删除项目以更改订单。因此,请你们帮我弄清楚处理现有数据库项目的最佳方式。提前致谢。从DataGrid中添加或删除项目 - vb.net compact framework
到目前为止我的代码,
从数据库
Public Shared Function MenuItems(ByVal groupNo As Integer) As List(Of Menus)
Dim cmd As New SqlCommand("", Ayar.baglanti)
Dim menuItem As New List(Of Menus)
Try
cmd.CommandText = "SELECT ToppingAutoID, BasePrice, ToppingName, PrinterName, Special, Normal, Irregular," & _
" NavigationID, ModifiersCharge, taxRate, JustNavigate, Terminator, ItemQuantity, ExtraCharge, TripleCharge, " & _
" HalfCharge, OneThirdCharge, OneForthCharge, NoDiscountItem FROM MenuToppings WHERE GroupID = @groupID"
cmd.Parameters.AddWithValue("@groupID", groupNo)
Dim data As New DataSet
data.Load(cmd.ExecuteReader, LoadOption.OverwriteChanges, "menuitem")
Dim dt As DataTable = data.Tables("menuitem")
''
For Each r As DataRow In dt.Rows
Dim item As New Menus
item.Toppingautoid = r("ToppingAutoID")
item.Baseprice = r("BasePrice")
item.Toppingname = r("ToppingName")
item.Itemquantity = r("ItemQuantity")
menuItem.Add(item)
Next
Catch ex As Exception
log.log("MenuItem()fonksiyonunda hata oluştu.", ex.Message)
End Try
MenuItems = menuItem
End Function
获取现有的订单清单上的DataGrid现有秩序
Public Function siparisGoster()
Dim isModifed As Boolean = False
Dim skl As New DataGridTableStyle
Dim kolon1, kolon2, kolon3 As New DataGridTextBoxColumn
kolon1.MappingName = "Itemno"
kolon1.HeaderText = "MADAKAFA"
kolon1.Width = -1
kolon2.MappingName = "Itemdesc"
kolon2.Width = 300
kolon3.MappingName = "Itemamount"
kolon3.Width = 10
skl.GridColumnStyles.Add(kolon1)
skl.GridColumnStyles.Add(kolon2)
skl.GridColumnStyles.Add(kolon3)
If isModifed = False Then
Dim ord As Order = Order.GetTableOrder(tableNo)
Dim bs As New BindingSource
bs.DataSource = ord.GetOrderItems
skl.MappingName = bs.GetListName(Nothing)
DataGridItems.BackColor = Color.White
DataGridItems.ColumnHeadersVisible = False
DataGridItems.RowHeadersVisible = False
DataGridItems.TableStyles.Clear()
DataGridItems.TableStyles.Add(skl)
DataGridItems.DataSource = bs
End If
End Function
答
姚建雄描述两个,一个手动和自动,在 - 在编程Compact Framework(可用VB.NET和C#版本)的书中进行编辑。你可以在http://www.paulyao.com/cfbook/code登记,以获得第8章
摘录的代码:
Private Sub cmdEdit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) _
Handles cmdEdit.Click
With dgrdProjects.CurrentCell
' Check the DataSource's column's name
' If it is "ctTasks", do not update.
If dgrdProjects.TableStyles("Projects"). _
GridColumnStyles(.ColumnNumber). _
MappingName = "ctTasks" Then
MessageBox.Show(_
"Count of tasks only changes as the " & _
"result of adding/removing a task.")
Exit Sub
End If
' Position textEdit for in-place editing.
textEdit.Bounds = dgrdProjects.GetCellBounds _
(.RowNumber, .ColumnNumber)
' Load the CurrentCell's value into textEdit.
textEdit.Text = dgrdProjects.Item _
(.RowNumber, .ColumnNumber)
' Highlight the text.
textEdit.SelectAll()
' Show textEdit and set the focus to it.
textEdit.Visible = True
textEdit.Focus()
End With
' Set Form GUI state to "Editing".
Me.SetEditingState(True)
End Sub
...
Private Sub cmdUpdate_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) _
Handles cmdUpdate.Click
' Move the contents of textEdit
' into the CurrentCell
With dgrdProjects
.Item(.CurrentCell.RowNumber, _
.CurrentCell.ColumnNumber) = textEdit.Text
End With
' Set Form GUI state to "Not Editing".
Me.SetEditingState(False)
End Sub
这本书是非常值得购买。这是我最喜欢的CF首发之一。