1

我正在开发一个项目,该项目允许用户使用 Windows 移动设备的手持设备在餐厅点餐。我使用数据网格来显示现有订单,并希望通过单击按钮来添加项目,或者通过从数据网格中选择来更改订单来删除项目。因此,请你们帮我弄清楚处理现有数据库项目的最佳方法是什么。提前致谢。

到目前为止,我的代码是,

从数据库中获取现有订单

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

列出数据网格上的现有订单

  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
4

1 回答 1

0

Paul Yao 在他的 Programming the 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 启动器之一。

于 2014-02-08T10:17:29.843 回答