如何通过数据集填充 ASP.NET 3.5 中的列表视图?
是否可以用数据集填充列表视图?我有一个返回数据集的函数。为什么我问这个是因为我的 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
Is it possible to populate a listview with a dataset? I have a function that returns a dataset. Why im asking this is because my SQL is quite complicated and i can't convert it to a 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从哪里开始呢...
Where to start with this one...
当然。在代码隐藏中,只需将数据源设置为要将列表绑定到的 DataTable,然后在列表上调用 DataBind():(
希望这是有效的 VB.NET 代码,我通常使用 C# 编写代码)。
Sure. In the code-behind just set the datasource to the DataTable you want to bind the list to, then call DataBind() on the list:
(hopefully that's valid VB.NET code, I normally code in C#).