GridView表1与表2相关

时间:2013-04-25 14:36:47

标签: c# gridview webforms

对不起我知道标题确实令人困惑,但我无法弄清楚到底要放下什么。

基本上我创建了一个查询数据库并显示数据的网格视图。它完美无缺,没有抱怨,但我现在拥有的是,

enter image description here

但我想要的是,

enter image description here

问题:我不知道怎么能这样做,有人可以指出我正确的方向吗?

我想我会使用嵌套的网格视图。

2 个答案:

答案 0 :(得分:2)

尝试更改您的SELECT查询,如下所示......您将获得预期结果 ...

SQL小提琴: http://www.sqlfiddle.com/#!3/00b5f/15

我已将Table命名为Fruits

SELECT CrateTitle,CrateDescription,CrateID,
stuff(
(
    SELECT ','+ [FruitTitle] FROM fruits WHERE CrateID = t.CrateID FOR XML path('')
),1,1,'') Types_of_Fruits_in_Crate
FROM (SELECT DISTINCT CrateTitle,CrateDescription,CrateID FROM fruits )t

CREATE a PROC

*Place this Query in that Proc*

*Call that Proc*

*assign that Result set to GridView*

您可以使用以下代码将其存储过程结果集分配给GridView:

        DataTable dt = new DataTable();
        SqlConnection connection = new SqlConnection("Your Connection String");
        try
        {
            connection.Open();
            string spName = "YOURStoredProcudureName";


            SqlCommand sqlCmd = new SqlCommand(spName, connection);
            SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
            sqlCmd.CommandType = CommandType.StoredProcedure;


            sqlDa.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                //display the DataTable to a Data control like GridView for example
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            string msg = "Fetch Error:";
            msg += ex.Message;
            throw new Exception(msg);
        }
        finally
        {
            connection.Close();
        }

答案 1 :(得分:0)

这更像是一个sql(或者你的数据库引擎使用的任何语言)问题而不是ac#问题,尽管来自c#的一个解决方案(虽然可能有点额外工作)使用html文字来绘制你的表格运行时间

另一种选择是更改你的sql但没有更多信息我不能说你是否可以在changeID或数据透视表上使用一个组