这是我的数据库表
想问,如何将内径为d的数据条目放入数组中。
比如d=5,自动生成数组a[3,4]={ {5,61002,0.52,0.95}, {5,61012,0.53,0.97},{5,61022,0.64,1.12}}
比如d=15,自动生成数组 a[2,4] = …………
比如d=25,自动生成数组 a[4,4] = …………谢谢大家,在做一个项目,很着急,谢谢各位了!

解决方案 »

  1.   

    你这不就是笛卡尔乘积吗?
    select * from table t1,table t2
    where t1.内径=t2.内径 and t1.Id != t2.Id and t1.内径=5
      

  2.   

    按条件查询数据库 .... where 内径=5
    数据库帮助类一般将结果保存到 DataTable 中
    DataRow 有 ItemArray 属性,你依次取出就可以了
      

  3.   

    在这里https://blog.csdn.net/C_gyl/article/details/85067599
      

  4.   

    谢谢大家,我刚想了一下,解决了。方法分为3步:
    1、先统计用foreach语句遍历数据库每一行,查找内径为d的数据一共有多少条(k)  ,用if(table.item[1]==d)  k++ 进行判断,得到一共有k条。
    2、创建a[k][4] double数组.
    3、再次用foreach语句遍历数据库每一行,把相应列给数组赋值。虽然效率有点低,但是能解决问题。不过“型号”是字符串格式的,不能存进 double数组里。不过没关系,记住数据库的序号就行,需要用到型号再反查。
      

  5.   

    USE tempdb
    GO
    IF OBJECT_ID('dbo.[t]') IS NOT NULL 
    DROP TABLE dbo.[t]
    GO
    CREATE TABLE t(
    id INT IDENTITY(1,1) PRIMARY KEY,
    [内径] INT,
    [型号] VARCHAR(20),
    [静载荷] DECIMAL(10,2),
    [动载荷] DECIMAL(10,2)
    )
    GO
    SET NOCOUNT ON
    INSERT INTO t VALUES (5,61002,0.52,0.95)
    INSERT INTO t VALUES (5,61012,0.53,0.97)
    INSERT INTO t VALUES (5,61022,0.64,1.12)
    INSERT INTO t VALUES (15,61003,1.12,1.14)
    INSERT INTO t VALUES (15,'6101/3',1.22,1.4)INSERT INTO t VALUES (25,61005,2.11,2.34)
    INSERT INTO t VALUES (25,61015,3.4,4.2)
    INSERT INTO t VALUES (25,'6102/5',6.4,7.9)
    INSERT INTO t VALUES (25,61035,8.2,4.3)SELECT 
    [内径]
    , '['+ STUFF((SELECT ',{'+LTRIM([内径])+',"'+LTRIM([型号])+'",'+LTRIM([静载荷])+','+LTRIM([动载荷])+'}' 
    FROM t AS b WHERE a.[内径]=b.[内径] FOR XML PATH('')),1,1,'')+']' AS json 
    FROM t AS a
    GROUP BY [内径]
    /*
    内径          json
    ----------- -------------------------------------------------------------------------
    5           [{5,"61002",0.52,0.95},{5,"61012",0.53,0.97},{5,"61022",0.64,1.12}]
    15          [{15,"61003",1.12,1.14},{15,"6101/3",1.22,1.40}]
    25          [{25,"61005",2.11,2.34},{25,"61015",3.40,4.20},{25,"6102/5",6.40,7.90},{25,"61035",8.20,4.30}]
    */
    你看, 这一切多美妙!
    得到了现成的数据, 你只需要将结果用 Newtonsoft.Json 转化成数组对象就可以了。