簡體   English   中英

數據源是 VB.net 中的無效類型

[英]Data source is an invalid type in VB.net

我正在查詢數據庫以填充 Datagrid。 我不希望數據庫中的所有內容都顯示在表格上,只是一些重要信息。

我是 VB.net 的新手,我習慣於 asp.net 核心 MVC 和實體框架

數據源是無效類型。 它必須是 IListSource、IEnumerable 或 IDataSource。 這是我下面的代碼

    Private Sub GetTSANotification()
        Dim query As String = "SELECT * FROM [dbo].[notifyMe]"

        Dim DBConnection As String = System.Configuration.ConfigurationManager.ConnectionStrings("Notification").ConnectionString
        Using cmd As New SqlConnection(DBConnection)
            Using da As New SqlCommand(query)
                Using sda As New SqlDataAdapter()
                    da.Connection = cmd
                    sda.SelectCommand = da
                    Using data As New DataTable()
                        sda.Fill(data)
                        notifyReport.DataSource = da
                        notifyReport.DataBind()
                    End Using
                End Using
                End Using
            End Using
    End Sub

這是我的數據網格。 我只想顯示數據庫中的 5 個項目,用戶不需要數據庫列中的其他項目

    <asp:GridView CssClass="table table-bordered table-striped" ID="notifyReport" runat="server" AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="OnPageIndexChanging" PageSize="10">
                                    
                                    <Columns>
                                        <asp:BoundField DataField="id" HeaderText="Id" SortExpression="id"></asp:BoundField>
                                        <asp:BoundField DataField="customerName" HeaderText="Customer Name" SortExpression="customerName"></asp:BoundField>
                                        <asp:BoundField DataField="customerEmail" HeaderText="Email" SortExpression="customerEmail"></asp:BoundField>
                                        <asp:BoundField DataField="fee" HeaderText="Fee" SortExpression="fee"></asp:BoundField>
                                        <asp:BoundField DataField="feedType" HeaderText="Feed Type" ReadOnly="True" SortExpression="feedType"></asp:BoundField>
                                         <asp:BoundField DataField="narrationDesc" HeaderText="Narration" ReadOnly="True" SortExpression="narrationDesc"></asp:BoundField>
                                    </Columns>
                                </asp:GridView>

“智慧的開端,是給事物起正確的名字”

所以你的代碼可以被簡化和理順一點:

Private Sub GetTSANotification()
    Dim query As String = "SELECT * FROM [dbo].[notifyMe]"

    Dim connStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("Notification").ConnectionString

   
    Using sda As New SqlDataAdapter(query, connStr)
      Dim data As New DataTable
      sda.Fill(data)
      notifyReport.DataSource = data
      notifyReport.DataBind()
    End Using
            
End Sub

暫無
暫無

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

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