簡體   English   中英

在數據庫中執行select並將其顯示在表中時重復

[英]Duplicates when doing select in a database and showing it in a table

實際上,我是ASPX和VB.net的新手,我試圖在表中顯示特定用戶的某些項目,因此,首先,我檢查並把用戶已購買的“軟件”放入列表中在數據庫中:

table_username:User1 table_codesoftware:VP或table_username:User2 table_codesoftware:VP和table_username User2 table_codesoftware VPO。

因此,當User2可以訪問軟件VP和VPO時,User1只能訪問數據庫中具有VP的軟件作為軟件代碼。

但是,當我嘗試顯示User2的項目時,它將顯示兩次使用代碼VP的軟件。

這是我的VB.NET代碼,其中有一個SELECT,其中aggiornamenti是存在所有軟件的表,而dat(“ codesw_cs”)是可用於用戶軟件的列表。

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim result As New ArrayList()
    Dim table As New StringBuilder()

    Dim SQL As String = "SELECT codesw_cs FROM clienti_sw WHERE nomeutente_cs = '" + Context.User.Identity.Name + "'"

    Dim SQLConnect As String = ConfigurationManager.ConnectionStrings("myConnectionString").ConnectionString

    Dim con As New MySqlConnection(SQLConnect)

    Dim reader As MySqlDataReader

    Dim cmd = New MySqlCommand(SQL, con)

    Try
        table = New StringBuilder()
        con.Open()


        reader = cmd.ExecuteReader()
        While reader.Read()

            Dim dict As New Dictionary(Of String, Object)
            For count As Integer = 0 To (reader.FieldCount - 1)
                dict.Add(reader.GetName(count), reader(count))
            Next


            result.Add(dict)
        End While
        reader.Close()

        con.Close()

    Catch ex As Exception
        MsgBox("Can't load Web page" & vbCrLf & ex.Message)
    End Try

    For Each dat As Dictionary(Of String, Object) In result
        con.Open()
        Dim msd = New MySqlCommand("SELECT * FROM aggiornamenti WHERE softcode_ag = '" + dat("codesw_cs") + "'", con)

        reader = msd.ExecuteReader()

        While reader.Read()
            table.Append("<tr>")
            table.Append("<td>").Append(reader.GetString("nomesoftware_ag")).Append("</td>")
            table.Append("<td>").Append(reader.GetString("version_ag")).Append("</td>")
            table.Append("<td>").Append(Date.Parse(reader.GetString("releasedata_ag")).ToShortDateString).Append("</td>")
            table.Append("<td>").Append("<a href=""" + reader.GetString("download_ag") + """ aria-disabled=""true"">Download</a></td>")
            table.Append("</tr>")

        End While
        placeholder.Controls.Add(New LiteralControl(table.ToString))

        reader.Close()

        con.Close()


    Next


End Sub

您需要在每個循環中清除表變量。 如果不是,則第二次循環,它將繼續追加到變量中。

For Each dat As Dictionary(Of String, Object) In result
  table = New StringBuilder()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM