datagrid导用sql数据?

问题描述

sql表如下:categoryidcategorynamecategoryintro1恋人对象12朋友对象23父母对象34病人对象15老师对象26客户对象3实现datagrid功能如下:对象1对象2对象3恋人朋友父母病人老师客户sql语句应该如何查找才对?谢谢!

解决方案

解决方案二:
/*普通行列转换(爱新觉罗.毓华2007-11-18于海南三亚)假设有张学生成绩表(tb)如下:NameSubjectResult张三语文  74张三数学  83张三物理  93李四语文  74李四数学  84李四物理  94*/-------------------------------------------------------------------------/*想变成姓名语文数学物理-------------------------------------------李四748494张三748393*/createtabletb(Namevarchar(10),Subjectvarchar(10),Resultint)insertintotb(Name,Subject,Result)values('张三','语文',74)insertintotb(Name,Subject,Result)values('张三','数学',83)insertintotb(Name,Subject,Result)values('张三','物理',93)insertintotb(Name,Subject,Result)values('李四','语文',74)insertintotb(Name,Subject,Result)values('李四','数学',84)insertintotb(Name,Subject,Result)values('李四','物理',94)go--静态SQL,指subject只有语文、数学、物理这三门课程。selectname姓名,max(casesubjectwhen'语文'thenresultelse0end)语文,max(casesubjectwhen'数学'thenresultelse0end)数学,max(casesubjectwhen'物理'thenresultelse0end)物理fromtbgroupbyname/*姓名语文数学物理-------------------------------------------李四748494张三748393*/--动态SQL,指subject不止语文、数学、物理这三门课程。declare@sqlvarchar(8000)set@sql='selectNameas'+'姓名'select@sql=@sql+',max(caseSubjectwhen'''+Subject+'''thenResultelse0end)['+Subject+']'from(selectdistinctSubjectfromtb)asaset@sql=@sql+'fromtbgroupbyname'exec(@sql)/*姓名数学物理语文-------------------------------------------李四849474张三839374*/-------------------------------------------------------------------/*加个平均分,总分姓名语文数学物理平均分总分--------------------------------------------------------------------------李四74849484.00252张三74839383.33250*/--静态SQL,指subject只有语文、数学、物理这三门课程。selectname姓名,max(casesubjectwhen'语文'thenresultelse0end)语文,max(casesubjectwhen'数学'thenresultelse0end)数学,max(casesubjectwhen'物理'thenresultelse0end)物理,cast(avg(result*1.0)asdecimal(18,2))平均分,sum(result)总分fromtbgroupbyname/*姓名语文数学物理平均分总分--------------------------------------------------------------------------李四74849484.00252张三74839383.33250*/--动态SQL,指subject不止语文、数学、物理这三门课程。declare@sql1varchar(8000)set@sql1='selectNameas'+'姓名'select@sql1=@sql1+',max(caseSubjectwhen'''+Subject+'''thenResultelse0end)['+Subject+']'from(selectdistinctSubjectfromtb)asaset@sql1=@sql1+',cast(avg(result*1.0)asdecimal(18,2))平均分,sum(result)总分fromtbgroupbyname'exec(@sql1)/*姓名数学物理语文平均分总分--------------------------------------------------------------------------李四84947484.00252张三83937483.33250*/droptabletb------------------------------------------------------------------------------------------------------------------/*如果上述两表互相换一下:即姓名语文数学物理张三74  83  93李四74  84  94想变成NameSubjectResult----------------------------李四语文74李四数学84李四物理94张三语文74张三数学83张三物理93*/createtabletb1(姓名varchar(10),语文int,数学int,物理int)insertintotb1(姓名,语文,数学,物理)values('张三',74,83,93)insertintotb1(姓名,语文,数学,物理)values('李四',74,84,94)select*from(select姓名asName,Subject='语文',Result=语文fromtb1unionallselect姓名asName,Subject='数学',Result=数学fromtb1unionallselect姓名asName,Subject='物理',Result=物理fromtb1)torderbyname,caseSubjectwhen'语文'then1when'数学'then2when'物理'then3when'总分'then4end--------------------------------------------------------------------/*加个平均分,总分NameSubjectResult-------------------------------------李四语文74.00李四数学84.00李四物理94.00李四平均分84.00李四总分252.00张三语文74.00张三数学83.00张三物理93.00张三平均分83.33张三总分250.00*/select*from(select姓名asName,Subject='语文',Result=语文fromtb1unionallselect姓名asName,Subject='数学',Result=数学fromtb1unionallselect姓名asName,Subject='物理',Result=物理fromtb1unionallselect姓名asName,Subject='平均分',Result=cast((语文+数学+物理)*1.0/3asdecimal(18,2))fromtb1unionallselect姓名asName,Subject='总分',Result=语文+数学+物理fromtb1)torderbyname,caseSubjectwhen'语文'then1when'数学'then2when'物理'then3when'平均分'then4when'总分'then5enddroptabletb1
解决方案三:
那在asp.net应该如何查找才对呢?
解决方案四:
编程/JAVA/.NET/C++群号:38850938
解决方案五:
--有空字段,暂未解决selectcategoryid,max(casecategoryintrowhen'对象1'thencategorynameelsenullend)对象1,max(casecategoryintrowhen'对象2'thencategorynameelsenullend)对象2,max(casecategoryintrowhen'对象3'thencategorynameelsenullend)对象3fromtgroupbycategoryid

解决方案六:
算了,SQL有点累,LZ把它读出来后用集合处理吧,很好弄//假设分别存放到三个集合中,可视情况再作处理(合并起来加个分隔符等)ArrayListarr1=newArrayList();ArrayListarr2=newArrayList();ArrayListarr3=newArrayList();DateTabledt=ReturnTable();//读出的记录集foreach(DataRowdrindt.Rows){stringcol1=dr["对象1"].ToString();stirngcol2=dr["对象2"].ToString();stirngcol2=dr["对象3"].ToString();if(col1.Length>0)arr1.Add(col1);//对象1的有效值集合if(col2.Length>0)arr2.Add(col1);//对象2的有效值集合if(col3.Length>0)arr3.Add(col1);//对象3的有效值集合}

解决方案七:
呵,后面的col1要相应的改一下,复制的没改全
解决方案八:
可以用vb.net写出来吗?谢谢了
解决方案九:
逻辑好复杂
解决方案十:
但是只能读出categoryid其他的不能读出来
解决方案十一:
如果我直接取出两行就很容易,但是从不同的行取出不同的字段,不知道如何搞PrivateSubbindgrid1()IfNotIsPostBackThenDimconAsNewSqlConnectionDimcmdAsNewSqlCommandDimdrAsSqlDataReadercon.ConnectionString=ConfigurationSettings.AppSettings("database")cmd.Connection=concmd.CommandType=CommandType.Textcmd.CommandText="select*fromdatabase"con.Open()dr=cmd.ExecuteReader()DataGrid1.DataSource=drDataGrid1.DataBind()dr1.Close()con.Close()EndIfdatagrid的属性生成器不知道如何设计才得到:datagrid功能如下:对象1对象2对象3恋人朋友父母病人老师客户
解决方案十二:
还没有解决,解决到我给全部分
解决方案十三:
接分先!

时间: 2024-09-04 10:49:13

datagrid导用sql数据?的相关文章

SQL Server数据库下教你如何做导库SQL

导库SQL -- 适用于sql server 在企业信息化建设过程中,数据库实体做为存放企业运营数据的仓库,具有至高重要的地位. 为防止数据丢失,事前预防是很关键的,诸如数据库定期备份.磁盘阵列.集群解决方案等等. 但是一旦发生数据丢失或是损坏的现象,而且不能通过正常的修复手段来处理,则可以通过导库来尝试一下. 国产的软件包括k/3,u8 等等,都有类似管理数据库的工具,管理工具中提供新建数据库的功能,新建的同类(指管理工具中提供的类别)数据库实体(国产软件通常称之为"账套")有相同的

easyui中的datagrid怎么一条数据多行显示?

问题描述 easyui中的datagrid怎么一条数据多行显示? 现在就是想用datagrid做表把一条数据多行显示出来 效果像这个样子,找了好多资料都没有看到,求大神教教 解决方案 easyui datagrid数据不显示 解决方案二: 增加loadFilter配置,自己将一行数据整为多行的数据返回 loadFilter function Return the filtered data to display. The function take one parameter 'data' th

sql-ASP读取SQL数据表 生成多记录JSON 具体代码如何写 求教大神

问题描述 ASP读取SQL数据表 生成多记录JSON 具体代码如何写 求教大神 数据表是user 主键是m_Name <%response.ContentType=""text/json"" response.write request(""jsoncallback"")%>([{""m_Name"":""*依旧""n_Name&quo

把sql数据和access数据整合成一个数据集

access|数据 有时候我们要取得的一部分数据在sql的数据库中,而另一部分数据在access数据库中,但是有时候却需要把这两个数据库中的数据关联起来进行查询,把他们整合在一个数据集合里无疑是一个很好的方法,按照下面这段操作,你就可以在只有sql连接数据库语句的情况下进行sql数据和access数据的联合查询     首先你要用有数据库管理者权限的账号执行下面的脚本01_AddLinkServer.sql,01_AddLinkServer.sql的内容如下:     use master EX

C#和SQL数据浏览分页

分页|数据 C#和SQL数据浏览分页 如果需要考虑如时间的过滤.其他条件的加入,可以在SQL语句进行编辑,普通的网站,下面的数据浏览分页 就可以了. aspx代码: <%@ Page language="c#" Codebehind="StockOrderFormBrower.aspx.cs" AutoEventWireup="false" Inherits="GSP.StockOrderFormBrower" %>

实现Castor数据绑定,第4部分:把Java对象绑定到SQL数据

本文配套源码 对于多数开发人员 - 尤其是各种Java版本的用户 - 数据绑定已经和闭包.单例(singletons).Ajax一样变为常用词汇表中的一部分了.而且和其他术语一样,数据绑定也常常被错误的定义. 特别是大部分程序员在听到数据绑定 的时候,实际上想的是XML数据绑定.加上这个小小的单词XML,造成大多数程序员忽略了相当多的功能和灵活性,尤其是如果使用 Castor API的话.这是因为对于Castor而言,XML数据绑定仅仅是其中的一部分.除了绑定到XML文档之外,Castor还提供

asp.net mvc中,ip怎么传入sql数据库库

问题描述 asp.net mvc中,ip怎么传入sql数据库库 asp.net mvc中,我在control中获取了ip地址,但是怎么传入sql数据库呢?新手,只知道怎么提交用户填写的表单里的数据... 解决方案 假设你用的是ef一类的框架,那么xxxDataEntites db = new xxxDataEntites();db.表.Add(new 实体 { ip = 你获得的ip });db.SaveChanges(); 解决方案二: ajax啊,你给他绑到用户点击的地方 解决方案三: 在数

sql数据查询数据过滤问题

问题描述 sql数据查询数据过滤问题 id为1是原始数据,如果有数据和原始数据的carId和garageId这2个字段的值相等的话就不显示原始数据 否则就显示原始数据 解决方案 select * from table where (carId,garageId) not in (select * from table where id=1) yuanshishuju; 如果回答对您有帮助,请采纳

sql-查询SQL数据只显示第一条不能全部显示

问题描述 查询SQL数据只显示第一条不能全部显示 现住客人房费一表 <% DataServer = "lx" DataUser = "sa" DataBaseName = "hy2006qt" DataBasePsw = "" Set conn = Server.CreateObject("ADODB.Connection") ConnStr="driver={SQL Server};ser