字段名的显示问题 急(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 (--------------------编程问答-------------------- GridView可以用VS绑定啊.不要写代码.
[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 上有个三角按钮,在里面再选择绑定数据库表按提示就可以一项项绑好,再改表头就可以了.
如果你想重新查询绑定,修改AccessDataSource就可以了. --------------------编程问答-------------------- 我也想了解,谢谢LZ. --------------------编程问答-------------------- Gridview
帮定
自己修改名字
或者改sql语句
把你的名字as了
如果项目过大
建议在系统管理
遍历Gridview的列头
在数据库里创建代码表进行统一修改
补充:.NET技术 , ASP.NET