【问题标题】:Setting a variable to the highest value in Access Database ASP.NET在 Access 数据库 ASP.NET 中将变量设置为最大值
【发布时间】:2018-06-27 18:37:16
【问题描述】:

我想将一个变量设置为来自 aspx.vb 的 Access 数据库表中的一个值。我想将最高的“PalletNumber”返回到 txbPalletNumber 文本框。我做错了什么?

 Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Dim conn As New OleDbConnection
    Dim connString As String
    Dim cmd As New OleDbCommand

    Try
        ' Set the connection string.
        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data 
   Source=C:\Users\SF7\Desktop\Shore Fresh Logistics_be_be.accdb"

        ' Open the connection.
        conn.ConnectionString = connString
        conn.Open()

        'Set the command properties.
        cmd.Connection = conn
        cmd.CommandText = "SELECT PalletNumber, MAX(PalletNumber) FROM 
        tblPalletNumber"

        txbPalletNumber.Text = cmd.ExecuteScalar()

        conn.Close()
        GridView1.DataBind()
    Catch ex As Exception
        'Error handling
    End Try
    txbPackday.Text = DateAndTime.Now


End Sub

【问题讨论】:

  • 你的SQL语句不行,需要分组PalletNumber
  • 您将在查询中返回 2 列供初学者使用。可能只需要有“MAX(PalletNumber)”
  • 阿布尼说的。这里似乎不需要 PalletNumber。我真的希望这是一个有用的目的,而不是计算下一个要插入的 ID,而不是使用自动生成的唯一 ID。还有Catch ex As Exception 'Error handling End Try我希望这还没有完成,因为它不处理错误,它只是挤压它们并假装它们不存在,然后你不知道出了什么问题,或者它的原因是什么。最后,如果您拥有多个用户,则将 Access 用于网站后端通常不是一种可扩展的方法。
  • 只选择最大值就不需要group-by,只需要SELECT MAX(PalletNumber) FROM tblPalletNumber
  • 只是为了澄清上面已经解释的内容。由于您的查询按原样将不起作用,并且也不是标量,因为您返回多个值。您需要:“SELECT MAX(PalletNumber) FROM tblPalletNumber”

标签: sql asp.net vb.net ms-access


【解决方案1】:

这里是解决方案。感谢所有的帮助。

   Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Dim conn As New OleDbConnection
    Dim connString As String
    Dim test As String

    ' Set the connection string.
    connString = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\Users\SF7\Desktop\Shore Fresh Logistics_be_be.accdb"

        ' Open the connection.
        conn.ConnectionString = connString
        conn.Open()

        Dim cmd As New OleDbCommand
        'Set the command properties.
        cmd.Connection = conn
    cmd.CommandText = "SELECT MAX(PalletNumber) FROM tblPalletNumber"
    test = cmd.ExecuteScalar()
    txbPalletNumber.Text = cmd.ExecuteScalar()
    conn.Close()
        GridView1.DataBind()

    txbPackday.Text = DateAndTime.Now


End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2019-08-05
    相关资源
    最近更新 更多