当前位置:编程学习 > C#/ASP.NET >>

字段名的显示问题 急(C#) 在线等

   大家好,我在用Gridview的时候,从数据库里面取出数据进行绑定。有3个表,
   表一:学生ID,学生姓名;
   表二:课程ID,课程名;
    表三:学生ID,课程ID,成绩;
 要在GridView里面成如下显示:
姓名  语文    化学    外语   物理   总分
张三  60     60      60    76    256
李四   0     0        0     0     0
王五   0      0       0     0     0
  
我在绑定数据的时候,在GridView里面显示却是:
               KCName
语文
化学
外语
物理

我写的代码如下,希望大家帮忙解释一下。谢谢。
private void GridviewBind()
    {
        DataSet ds = new DataSet();
        try
        {
            SqlConnection con = DB.CreateCon();
            if (con.State.ToString() == "Close") con.Open();
            SqlDataAdapter SdaKemu = new SqlDataAdapter("select KCName from KC", con);//从课程表里取课程名
            DataTable DtKemu = new DataTable();
           SdaKemu.Fill(ds, "Kemu");
            for (int i = 0; i < ds.Tables["Kemu"].Rows.Count; i++)
            {
                DtKemu.Columns.Add(ds.Tables["Kemu"].Rows[i]["KCName"].ToString());
            }
            
           
            if (con.State.ToString() == "Open") con.Close();
            GV.DataSource = ds.Tables["Kemu"];
            GV.DataBind();


        }
        catch (Exception ex)
        {
            Response.Write("数据库出错,错误原因" + ex.Message);
            Response.End();
        }
    }

    
     --------------------编程问答--------------------
 CREATE   TABLE   tb_student   (   
                [id]   [nvarchar]  (20) NOT   NULL   ,   
                [name]   [nvarchar]   (50)  NULL ,   
               
  )   ON   [PRIMARY]   
  GO   


 CREATE   TABLE   tb_class   (   
                [class_id]   [nvarchar]  (20) NOT   NULL   ,   
                [class_name]   [nvarchar]   (50)  NULL ,   
               
  )   ON   [PRIMARY]   
  GO 

 CREATE   TABLE   [tb_Source]   (   
                [id]   [nvarchar]  (20) NOT   NULL   ,
                [class_id]   [nvarchar]  (20) NOT   NULL   ,   
                [source]    [numeric](18,   0)   NULL  
               
  )   ON   [PRIMARY]   
  GO 

-------------------------------

 declare   @sql   varchar(8000)   

 -- set   @sql   =   'select   name,'

  set   @sql   =   'select  '  
 
  select   @sql   =   @sql   +   'sum(case when  [class_id]   =   '''+a.class_id+'''     
                                                      then   source   else   0   end)   as   '''+a.class_name+''',' 
  from        (select      class_id ,class_name  from   tb_class )   as   a  
   
  select   @sql   =   left(@sql,len(@sql)-1)   +   ', student.name AS ''姓名''   from   tb_Source  as source
inner join  tb_student  as student on source.id = student.id
  group   by  student.name '   
 
print  @sql
exec(@sql) 
--------------------编程问答-------------------- GridView可以用VS绑定啊.不要写代码.

点gridview 上有个三角按钮,在里面再选择绑定数据库表按提示就可以一项项绑好,再改表头就可以了.

如果你想重新查询绑定,修改AccessDataSource就可以了. --------------------编程问答-------------------- 我也想了解,谢谢LZ. --------------------编程问答-------------------- Gridview
帮定
自己修改名字
或者改sql语句
把你的名字as了
如果项目过大
建议在系统管理
遍历Gridview的列头
在数据库里创建代码表进行统一修改
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,