如何将多于1个表的数据绑定到listview

时间:2017-05-15 09:55:27

标签: c# .net data-binding

现在这是我的代码,它只是对最后提到的表进行数据绑定。

我有两张桌子"产品"和"电话",我想将它们都数据绑定到Listview1。

if (!IsPostBack)
    {
        ListView1.DataSource = this.GetDatatable2();
        ListView1.DataSource = this.GetData();
        ListView1.DataBind();
    }

private DataSet GetData()
{
    string conString = ConfigurationManager.ConnectionStrings["CARP"].ConnectionString;
    string query = "SELECT * FROM Produtos WHERE Id= '" + Request.QueryString["Id"] + "'";
    SqlCommand cmd = new SqlCommand(query);
    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            sda.SelectCommand = cmd;
            using (DataSet ds = new DataSet())
            {
                sda.Fill(ds);
                return ds;
            }
        }
    }
}

private DataSet GetDatatable2()
{
        string conString = ConfigurationManager.ConnectionStrings["CARP"].ConnectionString;
        string query = "SELECT * FROM Phone WHERE Id= '" + Request.QueryString["Id"] + "'";
        SqlCommand cmd = new SqlCommand(query);
        using (SqlConnection con = new SqlConnection(conString))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataSet ds = new DataSet())
                {
                    sda.Fill(ds);
                    return ds;
                }
            }
        }
}

1 个答案:

答案 0 :(得分:1)

它仅绑定第二个表的原因是,您不添加表但将它们设置为数据源。

要添加内容,请使用运算符+=代替=

但在这种情况下,这似乎不合适。我认为你应该首先合并两个表。通过数据绑定,ListView将自动生成列。因此,您需要在两个表中使用相同的列标题。其他任何事情都没有意义。

您可以使用SQL UNION并在一个查询中同时选择这两个表。