首页 > 解决方案 > 如何使用 numeric up down 来检索 datagridview 插入的结果或插入到 datagridview 的过去数据?

问题描述

如何使用数字上下控件来检索 datagridview 插入的结果或插入到 datagridview 的过去数据?

LoadRec = DbSelect("Select * from tblInvoiceDetails  where InvoiceNo= " & No & "")
If LoadRec.Rows.Count > 0 Then
    NumericUpDown1.Value = LoadRec.Rows(0).Item(0).ToString
    DataGridView2.DataSource = DbSelect("Select * from tblInvoiceDetails.itemno , ItemName, Qt, Price, Total   where InvoiceNo= " & No & "")

标签: vb.net

解决方案


它需要对 NumericUpDown 控件的值变化做出反应。

我将假设 的值itemno严格来说是 1、2、3、4 等。如果不是,SQL 查询就必须不同。

Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
    Dim n = DirectCast(sender, NumericUpDown).Value

    'TODO: Set invoiceNo to the correct value
    Dim invoiceNo As Integer = 1
    Dim dt As New DataTable

    Dim sql = "SELECT [ItemName], [Qt], [Price], [Total] FROM [tblInvoiceDetails] WHERE [InvoiceNo] = @InvoiceNo AND [itemno] = @itemno"

    Using conn As New SqlConnection("your connection string"),
            sqlCmd As New SqlCommand(sql, conn)

        sqlCmd.Parameters.Add(New SqlParameter With {.ParameterName = "@InvoiceNo", .SqlDbType = SqlDbType.Int, .Value = invoiceNo})
        sqlCmd.Parameters.Add(New SqlParameter With {.ParameterName = "@itemno", .SqlDbType = SqlDbType.Int, .Value = n})

        Dim dr As New SqlDataAdapter(sqlCmd)
        dr.Fill(dt)

    End Using

    DataGridView2.DataSource = dt

End Sub

线

NumericUpDown1.Value = LoadRec.Rows(0).Item(0).ToString

应该是

NumericUpDown1.Value = Convert.ToInt32(LoadRec.Rows(0).Item(0))
NumericUpDown1.Maximum = LoadRec.Rows.Count

DbSelect添加采用SqlParameterCollection的方法的重载是一个好主意。像目前所做的那样将值连接到查询中是一个坏主意。


推荐阅读