C# 将SQL Server数据从c显示到html页面
我需要制作一个网站,从SQL Server中提取数据并在网站上显示,它是在asp.net空web应用程序上设置的,页面是web表单,因此此代码位于.cs页面中 如何在.aspx页面上的数据上显示此内容C# 将SQL Server数据从c显示到html页面,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我需要制作一个网站,从SQL Server中提取数据并在网站上显示,它是在asp.net空web应用程序上设置的,页面是web表单,因此此代码位于.cs页面中 如何在.aspx页面上的数据上显示此内容 您需要带一个GridView控件。这是最好的控制 您可以按如下方式设置数据源: GridView1.DataSource = list GridView1.DataBind() 其他可用的控件有:DataList、Repeater、DataList等等。将GridView控件添加到您的aspx页
您需要带一个GridView控件。这是最好的控制 您可以按如下方式设置数据源:
GridView1.DataSource = list
GridView1.DataBind()
其他可用的控件有:DataList、Repeater、DataList等等。将GridView控件添加到您的aspx页面。将集合绑定到GridView,如下所示
List<Course> coll = GetCourses();
courseGridView.DataSource = coll;
courseGridView.DataBind()
在aspx文件中,将gridview添加为
<asp:GridView id="courseGridView" runat="server" />
你的问题有很多解决办法 如果您想在网格中显示数据,那么Rjv答案是最好的 但是,如果您希望在html或设计中进行自定义,则必须使用asp.net Repeater控件。 对于中继器控制,请遵循此链接 它也是数据绑定控制 aspx代码将被删除
<asp:Repeater ID="RptCourse" runat="server">
<HeaderTemplate>
<table>
<tr>
<th>ID </th>
<th>Name</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="Label1"
Text='<%# Eval("ID") %>' />
</td>
<td >
<asp:Label runat="server" ID="Label2"
Text='<%# Eval("Name") %>' />
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="Label1"
Text='<%# Eval("ID") %>' />
</td>
<td >
<asp:Label runat="server" ID="Label2"
Text='<%# Eval("Name") %>' />
</td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
RptCourse.DataSource = GetCourses();
RptCourse.DataBind();
}
private List<Course> GetCourses()
{
var dataTable = new DataTable();
using (var sqlConnection = new SqlConnection("Data Source=localhost;Initial Catalog=tafe_work;Integrated Security=True"))
{
sqlConnection.Open();
using (var sqlCommand = new SqlCommand("select * from Course", sqlConnection))
{
using (var sqlReader = sqlCommand.ExecuteReader())
{
dataTable.Load(sqlReader);
}
}
}
var courses = new List<Course>();
foreach (DataRow dataRow in dataTable.Rows)
{
var course = new Course()
{
ID = (int)dataRow["Course_ID"],
Name = (string)dataRow["Name"]
};
courses.Add(course);
}
return courses;
}
}
public class Course
{
public int ID { get; set; }
public string Name { get; set; }
}
您的aspx.cs代码将是
<asp:Repeater ID="RptCourse" runat="server">
<HeaderTemplate>
<table>
<tr>
<th>ID </th>
<th>Name</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="Label1"
Text='<%# Eval("ID") %>' />
</td>
<td >
<asp:Label runat="server" ID="Label2"
Text='<%# Eval("Name") %>' />
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="Label1"
Text='<%# Eval("ID") %>' />
</td>
<td >
<asp:Label runat="server" ID="Label2"
Text='<%# Eval("Name") %>' />
</td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
RptCourse.DataSource = GetCourses();
RptCourse.DataBind();
}
private List<Course> GetCourses()
{
var dataTable = new DataTable();
using (var sqlConnection = new SqlConnection("Data Source=localhost;Initial Catalog=tafe_work;Integrated Security=True"))
{
sqlConnection.Open();
using (var sqlCommand = new SqlCommand("select * from Course", sqlConnection))
{
using (var sqlReader = sqlCommand.ExecuteReader())
{
dataTable.Load(sqlReader);
}
}
}
var courses = new List<Course>();
foreach (DataRow dataRow in dataTable.Rows)
{
var course = new Course()
{
ID = (int)dataRow["Course_ID"],
Name = (string)dataRow["Name"]
};
courses.Add(course);
}
return courses;
}
}
public class Course
{
public int ID { get; set; }
public string Name { get; set; }
}
如果不需要,不要重复处理数据。Asp.net提供了许多功能。所有这些控件都可以直接绑定到数据表,因此无需遍历表来创建对象列表。如果确实需要,也可以绑定到对象列表 您可以在VisualStudio工具箱中找到数据控件,并将其直接拖动到.aspx页面 您需要确定最适合您需要的控件。GridView&DataList使用HTML表,其中as Repeater使用您定义的结构 Gridview可能是实现这一点的最快方法。将一个拖动到你的.aspx页面并给它一个ID,比如说grdCourses 在您的.cs页面中设置如下内容
private void bindCourses()
{
var dataTable = new DataTable();
using (var sqlConnection = new SqlConnection("Data Source=localhost;Initial Catalog=tafe_work;Integrated Security=True"))
{
sqlConnection.Open();
using (var sqlCommand = new SqlCommand("select * from Course", sqlConnection))
{
using (var sqlReader = sqlCommand.ExecuteReader())
{
dataTable.Load(sqlReader);
grdCourses.DataSource = dataTable;
grdCourses.DataBind();
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostBack)
{
bindCourses();
}
}
我提到GridView是最快的,这对于本演示来说很好,但是评估一下您真正需要的是什么,您真的需要一个表还是一个列表更好
此外,内置的数据控件非常强大,对它们的功能有很大的深度。如果您使用google:databind asp.net控件,您应该能够找到大量的教程来帮助您。亲爱的朋友,请查看下面我的答案。如果您需要更多帮助,请随时询问