-1

是否可以使用数据集填充列表视图?我有一个返回数据集的函数。为什么我问这个是因为我的 SQL 非常复杂,我无法将它转换为 SQLDataSource ......

Public Function getMessages() As DataSet
    Dim dSet As DataSet = New DataSet
    Dim da As SqlDataAdapter
    Dim cmd As SqlCommand
    Dim SQL As StringBuilder
    Dim connStr As StringBuilder = New StringBuilder("")
    connStr.AppendFormat("server={0};", ConfigurationSettings.AppSettings("USERserver").ToString())
    connStr.AppendFormat("database={0};", ConfigurationSettings.AppSettings("USERdb").ToString())
    connStr.AppendFormat("uid={0};", ConfigurationSettings.AppSettings("USERuid").ToString())
    connStr.AppendFormat("pwd={0};", ConfigurationSettings.AppSettings("USERpwd").ToString())
    Dim conn As SqlConnection = New SqlConnection(connStr.ToString())
    Try
        SQL = New StringBuilder
        cmd = New SqlCommand
        SQL.Append("SELECT m.MESSAGE_ID, m.SYSTEM_ID, m.DATE_CREATED, m.EXPIRE_DATE, ISNULL(s.SYSTEM_DESC,'ALL SYSTEMS') AS SYSTEM_DESC, m.MESSAGE ")
        SQL.Append("FROM MESSAGE m ")
        SQL.Append("LEFT OUTER JOIN [SYSTEM] s ")
        SQL.Append("ON m.SYSTEM_ID = s.SYSTEM_ID ")
        SQL.AppendFormat("WHERE m.SYSTEM_ID IN ({0}) ", sSystems)
        SQL.Append("OR m.SYSTEM_ID is NULL ")
        SQL.Append("ORDER BY m.DATE_CREATED DESC; ")

        SQL.Append("SELECT mm.MESSAGE_ID, mm.MODEL_ID, m.MODEL_DESC ")
        SQL.Append("FROM MESSAGE_MODEL mm ")
        SQL.Append("JOIN MODEL m ")
        SQL.Append("    ON m.MODEL_ID = mm.MODEL_ID ")
        cmd.CommandText = SQL.ToString
        cmd.Connection = conn
        da = New SqlDataAdapter(cmd)
        da.Fill(dSet)
        dSet.Tables(0).TableName = "BASE"
        dSet.Tables(1).TableName = "MODEL"
        Return dSet
    Catch ev As Exception
        cLog.EventLog.logError(ev, cmd)
    Finally
        'conn.Close()
    End Try
End Function
4

2 回答 2

2

这个从哪里开始...

listview.DataSource = getMessages().Tables(0); 
listview.DataBind;
于 2010-04-08T15:32:24.907 回答
1

当然。在代码隐藏中,只需将数据源设置为要将列表绑定到的 DataTable,然后在列表上调用 DataBind():

Protected Sub Page_Load(ByVal sender As object, ByVal e As EventArgs)
    If Not Page.IsPostBack Then
       Me.LoadData()    
    End If
End Sub

Protected Sub LoadData()
    Dim ds As DataSet = Me.GetData()
    Me.lstSample.DataSource = ds("Model")
    Me.lstSample.DataBind()
End Sub

(希望这是有效的 VB.NET 代码,我通常用 C# 编写代码)。

于 2010-04-08T15:33:28.273 回答