请教不规则大小数组如何存入sqlserver数据库中 5C

在做一个网络项目,例如我接收到一个不规则长度的数组数据

int[][] data=new int[4][];
    data[0]=new int[3];
    data[1]=new int[4];
    data[2]=new int[5];
    data[3]=new int[6];

目前设计的数据库字段是4个字段 data1,data2,data3,data4
假设本次存储完的数据为

    1   1   1   1
    2   2   2   2
    3   3   3   3
    NULL    4   4   4
    NULL    NULL    5   5
    NULL    NULL    NULL    6
    NULL    NULL    NULL    NULL
    假设data1又接收到新的数据,我该如何填入第四行中,这个该如何判断
    我的数据库字段该如何设计比较合理

7个回答

数据库,字符串字段,格式为json格式,[[0,0,0],[0,1,2,3],[0,2,4,6,8],[0,3,6,9,12,15]]
可以使用JsonConvert.SerializeObject()串行化为字符串存放到数据库中,
使用JsonConvert.DeserializeObject(json)还原为不规则数组

int[][] intAA = new int[4][];
            for(int i=0;i<intAA.Length;i++)
            {
                intAA[i] = new int[i + 3];
            }
            for(int i=0;i<intAA.Length;i++)
            {
                for(int j=0;j<intAA[i].Length;j++)
                {
                    intAA[i][j] = i * j;
                }
            }
            string json = JsonConvert.SerializeObject(intAA);
            var str1 = "[[0,0,0],[0,1,2,3],[0,2,4,6,8],[0,3,6,9,12,15]]";
            var obj= JsonConvert.DeserializeObject<int[][]>(json);

表格要加一个主键ID,自增的也可以,主要用来定位
data1来数据时
if exists(select * from tbData where data1 is null) --有data1为空的记录就更新
update tbData
set data1=@Data
where ID=(select min(ID) from tbData where data1 is null) --找最早的那条记录来更新
else
insert into tbData(data1) --data1都不为空,就新增一条记录
values(@data1)

data1和data2同时来数据时
if exists(select * from tbData where data1 is null and data2 is null) //有data1和data2同时为空的记录就更新
update tbData
set data1=@Data1,data2=@data2
where ID=(select min(ID) from tbData where data1 is null and data2 is null) --找最早的那条记录来更新
else
insert into tbData(data1,data2) --没有data1和data2同时都不为空的,就新增一条记录
values(@data1,@data2)

以上我是直接写出来的,可能有语法错误,大概的意思就是有符合的同时写入条件的记录的就更新,没有 就新增

可以转换成字符串,把字符串存到数据库中

表设计成  
id , value ,  type或者len update_time

1 4 3 2019-01-01
2 4 3 2019-01-01
3 4 3 2019-01-01
就是把原来的表行列倒置,这样不会有null.但是行数比以前增加了。

试试转成json字符串进行存储, 用的时候在转回来

转成带分隔符的字符串序列存数据库字段,用时再解析

转化为同一数组进行合并,或者for循环,依次添加每个数组的值

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数组如何存入数据库
在VC中用ADO怎样把double数组存入数据库中,怎样取出转换为double数据
如何把二进制文件存入到SQlServer数据库中
如何把二进制文件存入到SQlServer数据库中?
数组中的信息,如何快速的存入数据库
我有大量的信息,存在一个数组里面,现在需要把数组里面的信息,每项对应一行的存入数据库,有没有比较好的方法?rn我现在用的是最笨的方法,循环,一个个存入rnrn我记得JAVA好像可以直接传入一个数组的,c#要怎么做呢?谢谢了
请教高手! word文档存入sqlserver数据库
就是把word文档存入sqlserver数据库,并能从sqlserver数据库中读出, 还能进行全文检索. 请问大家 sqlserver数据库 能实现此功能吗?
如何限制 sqlserver 数据库的大小??
我有一个数据库名为 db1, 用户名:user1 可以完全控制 db1。请问我如何可以控制数据库 db1 最大只能 100M。rnrn我在db1 的属性里设置好文件的大小 100M、禁用自动增大文件。可用 user1 登录后可以改过来的。rn如何使 user1 登录后。属性页中的选项卡只读?
将数组存入数据库
使用ADO连接数据库,并且经数组转换成二进制数据存入数据库中。
不规则数组如何排序。
不规则数组如何排序。如string[]"1","1天","11天","111","2天"
C#中如何把struct存入到SqlServer数据库中呀?
C#中如何把struct存入到SqlServer数据库再取出来呀?
如何将XML中的数据存入SQLSERVER数据库?
前端接收到的数据转换成XML文档,后如何将XML文档中的数据存入数据库.请高手指点,最好有具体的例子.
存入sqlserver数据库中日期格式的问题
请教在VC中用ColeDateTime函数,存入sqlserver中格式为年月日时分秒2007-10-05 14:30:28,但我现在存入数据库只需要年月日即可2007-10-05,怎么实现?谢谢。
SQLServer数据库中图片的存入和读取
SQLServer数据库中图片的存入和读取。rnrn[color=#FF0000]1、数据库中存放图片的字段是什么类型的?rnrn2、把图像转化为二进制流存入数据库的方法?rnrn3、把二进制流转化图片的方法?[/color]
Java中的不规则数组
这是Java区别于c++的特性不多说,上代码package com.company; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { // write your code here final...
sqlserver数据库的大小
同样的数据sqlserver经过收缩,清空日志 最后大小是196Mrn其中只有一个表的数据多一些 大约42万条数据,导出成文本后市62Mrn但我把整个数据库导出到ASA数据库后数据文件是48M,日志文件是40M,rn为什么会差别这么大?rnsqlserver的数据库还有没有办法再缩小?
求助excel不规则数据存入数据库
[img=https://img-bbs.csdn.net/upload/201309/03/1378199627_902780.png][/img]rnrn就一张表,用c#怎么读取并存入数据库中?
不规则对话框如何改变大小!
Q:我用SetWindowRgn生成了一个无模式的对话框,想在对话框的右下角放个图片或其它东西,当鼠标在这个区域内按下并拖动的话,对话框大小发生变化!rnrnMYA:我的想法是这样:共涉及到三个事件ONLBUTTONDOWN,ONLBUTTONUP,ONMOUSEMOVE当鼠标按下时,记录下鼠标左键按下的坐标,当鼠标移动时,利用记录下的坐标减去当前坐标,得到偏移量,然后将窗口SW_HIDE,然后根据偏移量再生成一个新的RGN,再SetWindowRgn,显示窗口!这样的话基本可以达到效果,但是在变化大小的过程中,会不停的闪烁,参考MSDN后,得知原因是因为SHOWWINDOW(SW_HIDE);会激活其它窗口,从而发生闪烁!rnrnWANT:不知道那位高手有更好的解决方案,或是能解决闪烁的问题!rnrnCODE:rnvoid CCapDlg::OnLButtonDown(UINT nFlags, CPoint point)rnrn m_downPoint = point;rn ClientToScreen(&m_downPoint);rn SetCapture();rn m_bIsMove = true;rn if(m_sizeRect.PtInRect(point))rn rn m_bMove = false;rn SetCursor(LoadCursor(NULL,IDC_SIZENWSE));rn rn rn elsern rn m_bMove = true;rn SetCursor(LoadCursor(NULL, IDC_SIZEALL));rn rn CDialog::OnLButtonDown(nFlags, point);rnrnrnrnvoid CCapDlg::OnLButtonUp(UINT nFlags, CPoint point)rnrn ReleaseCapture();rn m_bIsMove = false;rn CPoint MyPoint=point;rn ClientToScreen(&MyPoint);rn int xOffset,yOffset;rn xOffset = MyPoint.x-m_downPoint.x;rn yOffset = MyPoint.y-m_downPoint.y;rn if(m_bMove = false)rn rn m_bMove = true;rn rn elsern rn rn rn CDialog::OnLButtonUp(nFlags, point);rnrnrnvoid CCapDlg::OnMouseMove(UINT nFlags, CPoint point)rnrn if(m_bIsMove)rn rn CPoint MyPoint=point;rn ClientToScreen(&MyPoint);rn int xOffset,yOffset;rn xOffset = MyPoint.x-m_downPoint.x;rn yOffset = MyPoint.y-m_downPoint.y;rnrn if(m_bMove)rn rn rn SetWindowPos(&CWnd::wndTop, m_startPoint.x+xOffset, m_startPoint.y+yOffset, m_outRect.right, m_outRect.bottom,SWP_SHOWWINDOW);rn rn rn elsern rn rn rn this->ShowWindow(SW_HIDE);rn rn m_capRect.SetRect(5,5,5+cameraWidth+xOffset,5+cameraHeight+yOffset);rnrn m_outRect.SetRect(0,0,m_capRect.right+5,m_capRect.bottom+30);rn m_sizeRect.SetRect(m_outRect.right-20,m_outRect.bottom-20,m_outRect.right,m_outRect.bottom);rn m_capButtonRect.SetRect(m_outRect.right-85,m_capRect.bottom+4,m_outRect.right-30,m_capRect.bottom+26);rn rn CRgn rgnA, rgnB, rgnC;//创建三个用来初始化窗口的区域rnrn VERIFY(rgnA.CreateRectRgnIndirect(LPCRECT(m_outRect)));rn VERIFY(rgnB.CreateRectRgnIndirect(LPCRECT(m_capRect)));rn VERIFY(rgnC.CreateRectRgn( 0, 0, 0, 0 ));//设定三个区域rn rn int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_XOR );rn ASSERT( nCombineResult != ERROR || nCombineResult != NULLREGION );rn SetWindowRgn((HRGN)rgnC,NULL);rn SetWindowPos(&CWnd::wndTop, m_startPoint.x, m_startPoint.y, m_outRect.right, m_outRect.bottom,SWP_SHOWWINDOW);rn //设置窗口的位置,大小和其它rn ShowWindow(SW_SHOW);rn //m_bMove = true;rn rn rn rn rn elsern rn ReleaseCapture();rn rn //ReleaseCapture();rn CDialog::OnMouseMove(nFlags, point);rnrn
请教:如何分隔字符串,存入数组?
字符串char* a[]=" 1 n ADC "rn请教,如何实现分隔,把1、n、ABC分别存入数组d[1]、d[2]、d[3]。rn我用strtok(),总得不到正解,郁闷-----rn谢谢!
请教:如何计算机数据库中图片的大小?
上传图片到photo文件夹下,并分类保存在数据中,如何才能计算他们的大小呢?rn单个图片的大小以及某一分类所有图片大小的总和?rn我现在要实现的功能是:一个分类限制图片上传总量的大小为10M,如果这个分类总量大于10M就不能再上传了。rn比较急,请各位高手帮我解决一下啊,谢谢了!
请教:如何创建sqlserver 数据库?
我会创建表,不会创建数据库。
如何把微信utf8mb格式的表情存入sqlserver数据库中
-
如何将int[][]数组存入数据库中?
如何将int[][]数组存入数据库中的一个字段中?rn使用binary字段可以吗?rnbinary字段是不是blob字段类型呢?
PHP怎么将数组存入数据库中
参考: PHP将数组存入数据库中的四种方式 https://blog.csdn.net/the_victory/article/details/45398551 感谢作者:Chris-Chang 分享进入正题原来数组array是不可以直接插入到数据库中的,得借助json_encode()方法,并且数据库的列得设置成text第一步:把数据库列(字段)设置成text类型大小用途TINYTEXT0-25...
字符串如何存入数组?
如何定义一个字符串数组来存放从文本中读出的多行字符串?rn例如:(多行字符串)rn第一行计算机(回车+换行)rn第二行数学(回车+换行)rn第三行Java(回车+换行)rn如何定义个数组M[]rn把第一行计算机存入M[0]rn 第二行数学存入M[1]rn 第三行Java存入M[2]rnrn
如何将javascript生成的数组存入数据库中
使用网页javascript计算公式生成一定数量的数组,如何通过ASP存入ACCESS数据库中。rn多谢各位大侠!
不规则数组
<p>n 本课程采用的开发环境为JDK+Eclipse,从零基础学习者的角度出发,通过通俗易懂的语言、流行有趣的实例,详细地介绍了使用Java 语言进行程序开发需要掌握的知识和技术。全课共分16 章节,包括初识Java、Java 语言基础、流程控制、数组、面向对象编程基础、异常处理、Java 常用类和枚举类型、泛型与集合类及坦克大战游戏等。书中所有知识都结合具体实例进行讲解,设计的程序代码给出了详细的注释,可以使学习轻松领会Java 程序开发的精髓,快速提高开发技能。n</p>n<p>n <img src="https://img-bss.csdn.net/201906200849405804.png" alt="" /></p>
SQLServer中如何存入大尺寸的图片???
1、SQLServer7中的Image字段,长度固定为16,这个16是16K的意思吗?是否只能存入这么大的图片。rn2、若1中不是。我已经把BDE中的Blob Size和Blob to Cache都改为1024,为何还是不能存入一个300K的图片。rn3、若1中是,如何把图片缩小尺寸后存入数据库中。rn谢谢。
c# 数组 数据库 sqlserver
如果我的数组中的值是rnrnzhangsan 男rnrn怎么插入到数据库阿???rnrn字段rnrnname sexrnrnsqlserverrnrnsql该怎么写??
如何将数据库记录存入数组
有-表ta,有t1,t2,t3,t4四个字段,记录数很多,想把t1=1的记录都取出写入一个数组,具体多少条记录不知道。如何用一次查询全都搞定?rn谢谢!!
byte[]数组存入数据库的问题
一个byte[]数组 假如我定义它的大小为byte[100] 但这个数组我只用了其中的一小部分 在存入数据库时 那它所占的空间是按分配的100的空间 还是按实际我存了多少数据?求高人指教!
数组大小问题请教
如果按照如下方式分配一个数组,怎么获得该数组大小,如下:rn int nData[] = 1,2,3,4,5,6,7;rn 那么nData数组多大,有什么函数可以获得吗?
smarty如何显示不规则数组?
array("t"=>21,22,23),6=>array(61,62,63),7=>array("m"=>71,"n"=>72,73));rn$smarty->assign("a",$a);rn$smarty->display("test.htm");rn?>rntest.htmrn rn//如何写才能显示 $a中的内容rn
Infopath表单数据存入SqlServer中?
如上所述,Infopath表单数据如何存入SqlServer中?求方法,最好有详细说明?
请问如何把数据库的数据存入js的数组中?
rnrnJS内容大致是这样,在数据不多的情况下,这样可以处理,如果有大量数据的话,请问如何从数据库中读出数据放在array数组中 ? 是在asp+access环境中,谢谢
Infopath表单数据存入SqlServer中?
如上所述,Infopath表单数据如何存入SqlServer中?求方法,最好有详细说明?
sqlserver 2005查看数据库大小
如题,在一台服务器上约创建有100个数据库,如何编写脚本一次性查看所有数据库的初始大小?rnrn我是这样想的: rn select name,'use '+name+char(10)+' exec sp_spaceused union all' from sys.databases rn可是,有问题,请教如何正确编写,谢谢。
如何把对象存入数组中
[img=https://img-bbs.csdn.net/upload/201903/21/1553139551_887308.png][/img]rn[img=https://img-bbs.csdn.net/upload/201903/21/1553139445_537019.png][/img]rnrnrnrn写到这没头绪了,说是让把输入的对象存到数组中,咋写,本人萌新,刚学,求大佬的帮助。[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/34.gif][/img]
【iOS开发】结构体如何存入数组中
1、常见结构体的储存 比较常见的结构体:CGPoint  ,CGSize,CGRect。。。。。。我们如何存放到数组中呢?因为是结构体不是对象,不能添加到数组中,解决方法:把这些常见的结构装换成对象,让后放进去,取出来在装换成结构体使用。我们想到了NSValue使用方法如下: CGPoint point = CGPointMake(0, 0); NSMutableArray *ar
sqlserver中如何调整tempdb的数据库的大小和数据库的增长率?
sqlserver中可以在enterprise manager中调整tempdb的数据库的大小和数据库的增长率,但是重新启动sqlserver后,你增长率又回到其默认值(10%),又和设置,可以使之rn每次重起,都不变,都与人工设置的一样rn
■■JDBC如何整理数据库中的不规则数据。
数据库中某一列数据含有“XX XXX.....”这样的记录,我要把都替换掉,用正则可以实现。rnrn但JDBC如何遍历这些记录要把同时更新这些记录?是不是要用到RowSet?
如何把数据库中的存入Excel中...
Access数据库中有三个表,如何分别存入Excel文件中的sheet1、sheet2、sheet3中?rn  rn  存入一个sheet中的代码如下:rnrnunit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls,ComObj;rnrntypern TForm1 = class(TForm)rn Button1: TButton;rn procedure Button1Click(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnrnvarrn Form1: TForm1;rnrnimplementationrnrn$R *.dfmrnrnprocedure TForm1.Button1Click(Sender: TObject);rnvarrn eclApp,WorkBook:Variant;rn 声明为OLE Automation对象 rn xlsFileName:string;rnbeginrn xlsFileName:='ex.xls';rn tryrn 创建OLE对象:Excel Application与 WorkBook // Uses ComObjrn eclApp:=CreateOleObject('Excel.Application');rn WorkBook:=CreateOleobject('Excel.Sheet');rn exceptrn ShowMessage('您的机器里未安装Microsoft Excel.');rn Exit;rn end;rnrn tryrn ShowMessage('下面演示:新建一个XLS文件,并写入数据,最后关闭它');rn workBook:=eclApp.workBooks.Add;rn eclApp.Cells(1 , 1):='字符型';rn eclApp.Cells(2 , 1):='Excel文件';rn eclApp.Cells(1 , 2):='Money';rn eclApp.Cells(2 , 2):=10.01;rn eclApp.Cells(1 , 3):='日期型';rn eclApp.Cells(2 , 3):=Date;rnrn WorkBook.saveas(xlsFileName);rn WorkBook.close;rn showmessage('下面演示:打开刚创建的XLS文件,并修改其中 的内容,然后,由用户决定是否保存。');rn workbook:=eclapp.workBooks.open(xlsFileName);rn eclApp.Cells(2 , 1):='Excel文件类型';rnif MessageDlg(xlsFileName+'文件已被修改,是否保存?',mtConfirmation,[mbYes, mbNo], 0) = mrYes thenrn WorkBook.savern elsern workBook.Saved := True; 放弃修改rn WorkBook.Close;rnrn eclApp.Quit; //退出Excel Applicationrn 释放VARIANT变量rn eclApp:=Unassigned;rn exceptrnrn showMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误');rn WorkBook.close;rn eclApp.Quit;rn 释放VARIANT变量rn eclApp:=Unassigned;rn end;rnrnend;rnrnend.rn
image控件中的图片存入sqlserver数据库中
image控件中的图片是自动生成的 ,怎么把这个图片转成二进制存入数据库中去?
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数