问题描述
大家好,我在用Gridview的时候,从数据库里面取出数据进行绑定。有3个表,表一:学生ID,学生姓名;表二:课程ID,课程名;表三:学生ID,课程ID,成绩;要在GridView里面成如下显示:姓名语文化学外语物理总分张三60606076256李四00000王五00000我在绑定数据的时候,在GridView里面显示却是:KCName语文化学外语物理我写的代码如下,希望大家帮忙解释一下。谢谢。privatevoidGridviewBind(){DataSetds=newDataSet();try{SqlConnectioncon=DB.CreateCon();if(con.State.ToString()=="Close")con.Open();SqlDataAdapterSdaKemu=newSqlDataAdapter("selectKCNamefromKC",con);//从课程表里取课程名DataTableDtKemu=newDataTable();SdaKemu.Fill(ds,"Kemu");for(inti=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(Exceptionex){Response.Write("数据库出错,错误原因"+ex.Message);Response.End();}}
解决方案
解决方案二:
CREATETABLEtb_student([id][nvarchar](20)NOTNULL,[name][nvarchar](50)NULL,)ON[PRIMARY]GOCREATETABLEtb_class([class_id][nvarchar](20)NOTNULL,[class_name][nvarchar](50)NULL,)ON[PRIMARY]GOCREATETABLE[tb_Source]([id][nvarchar](20)NOTNULL,[class_id][nvarchar](20)NOTNULL,[source][numeric](18,0)NULL)ON[PRIMARY]GO-------------------------------declare@sqlvarchar(8000)--set@sql='selectname,'set@sql='select'select@sql=@sql+'sum(casewhen[class_id]='''+a.class_id+'''thensourceelse0end)as'''+a.class_name+''','from(selectclass_id,class_namefromtb_class)asaselect@sql=left(@sql,len(@sql)-1)+',student.nameAS''姓名''fromtb_Sourceassourceinnerjointb_studentasstudentonsource.id=student.idgroupbystudent.name'print@sqlexec(@sql)
解决方案三:
GridView可以用VS绑定啊.不要写代码.点gridview上有个三角按钮,在里面再选择绑定数据库表按提示就可以一项项绑好,再改表头就可以了.如果你想重新查询绑定,修改AccessDataSource就可以了.
解决方案四:
我也想了解,谢谢LZ.
解决方案五:
Gridview帮定自己修改名字或者改sql语句把你的名字as了如果项目过大建议在系统管理遍历Gridview的列头在数据库里创建代码表进行统一修改