如何将单个记录数据绑定到ASP.NET中的控件?

时间:2011-08-22 19:36:57

标签: asp.net sql-server data-binding

哪个是ASP.NET 4中最好的控件/方法来绑定来自单个记录的数据,这是从sql server获取的?我有一些页面来显示文本,所以我需要标题,如标题,发布日期,内容等 - 每个数据的单个标签。当然我可以使用ListView或Repeater,但我想知道是否还有其他方法。

提前致谢

3 个答案:

答案 0 :(得分:2)

sqldatareader很好。

您可以创建一个sql-command,然后使用.executereader方法。例如:

dim myReader as SqlDatareader
Dim myCommand As New SqlCommand("myStoredProcedure", myConnection)
        With myCommand
            .CommandType = CommandType.StoredProcedure
            With .Parameters
                .Clear()
                .AddWithValue("myParameter", parametervalue)
            End With
        End With
Try
   myConnection.open
   myReader = myCommand.ExecuteReader
   While myReader.Read
       Me.myTextBox.Text = myReader("fieldname")
       Me.myCheckbox.Checked = myReader("fieldname")
   End While
Catch ex As Exception
   Response.Write(ex.Message)
Finally
   myConnection.Close()
End Try

或其他一些......

答案 1 :(得分:2)

您可以使用DetailsView,它旨在显示单个记录(尽管它通常用于主 - 详细信息方案)。 DetailsView可以使用SqlDatasource。

琐碎的例子:

<asp:SqlDataSource id="slqDataSource1" runat="server"
     ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
     SelectCommand="SELECT * FROM Table" />

<asp:DetailsView id="detailsView1" runat="server"
     AutoGenerateRows="true" DataKeyNames="Id"
     DataSourceID="sqlDataSource1" />

上面的示例基于SqlDataSource的SelectCommnad创建一个DetailsView。在上面的实现中,由于AutoGenerateRows设置为true,控件将呈现数据。但是,您也可以显式指定字段,并可以选择不同的字段(BoundField,ButtonField,CheckBoxField等)。

DetailsView Class

答案 2 :(得分:0)

您无法将数据绑定到文本字段。但是,使用类似上面列出的阅读器会产生一堆不必要的开销。为什么不创建一个类? 这样你就可以在你的DAL中获取它,然后在你的BLL中进行一些处理(或转换)。

无论如何我都会这样做。除非您具有约束力,否则不应使用DataReader和DataSet。