asp.netweb

asp.netweb怎么把GridView里的sqlserver中的一列数据显示成另一张表的数据,两张表有外键关系,连表查询怎么写啊?

直接子查询或者 inner join 连接下

在 ASP.NET Web 中使用 GridView 显示 SQL Server 中的数据,并将一个表中的数据显示成另一张表的数据,可以通过在 SQL Server 中使用 JOIN 连接来查询这两个表。下面是一个简单的例子。

假设我们有两个表 OrdersCustomers,它们之间有一个外键关系,即 Orders.CustomerID 外键引用 Customers.CustomerID 主键。现在我们希望在 GridView 中显示 Orders 表的数据,并将其中的 CustomerID 列显示为对应的 Customers 表的 CustomerName 列。

  1. 在 ASP.NET Web 中,添加一个 GridView 控件,并设置其 AutoGenerateColumns 属性为 false
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
</asp:GridView>
  1. 在代码中查询这两个表并使用 JOIN 连接。
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // 创建连接和 SQL 查询语句
        string connectionString = "Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True";
        string query = "SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID";

        // 创建 SqlDataAdapter 对象并填充数据到 DataSet 中
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
            DataSet dataset = new DataSet();
            adapter.Fill(dataset);

            // 将 DataSet 中的数据绑定到 GridView 控件上
            GridView1.DataSource = dataset.Tables[0];
            GridView1.DataBind();
        }
    }
}

在上述代码中,我们使用 INNER JOIN 连接了 OrdersCustomers 两个表,并选择了需要显示的列。然后使用 SqlDataAdapter 对象执行查询并将结果填充到一个 DataSet 中。

最后,我们将 DataSet 中的数据绑定到 GridView 控件上,并在 GridView 控件中指定需要显示的列。

这样就可以在 ASP.NET Web 中使用 GridView 显示两个表的数据,并将其中的一列显示成另一张表的数据了。