
数组存到数据库中的方法步骤如下:
1、首先,使用面向对象数据库,以数组元素是字符串为例,直接将数组映射到关系型数据库中,建立一个两列的表,分别为id列和value列;
2、然后,建立完成后,将数组转成一个单一数据串,即单一字符串,存到value列;
3、最后,存到value列后,利用动态编程的特性,将单一字符串赋值给相应的变量,赋值成功后,即可成功将数组存到数据库中。
public static record[] goodsinfo;
private void Form1_Load(object sender, EventArgs e)
{
goodsinfo = new record[10];
注:因为不确定商品数量,建议你用List取代数组,也就是形如
public static List<record> goodsinfo;
private void Form1_Load(object sender, EventArgs e)
{
goodsinfo = new List<record>();
record rec=new record();
recgoodsname = "哇哈哈矿泉水550ml";
recscale = "瓶";
recprice = 1;
goodsinfoAdd(rec);
rec=new record();
recgoodsname=xxx;
用List的好处是随时可以添加或者删除元素
过程是这样的。
以SQL为例
建立conn
创建stringsql查询语句
定义一个adp
定义一个DS
定义一个array
通过adpfill(ds)
for(i=1;i<dstable[0]rowscount;i++)
{
arry=additem(控件,数据字段);
}
最后将结果绑定到显示控件中,如
dropdownlistdatasource=arry;
dropdownlistdatabind();
这里不给详细代码。你知道过程就行了。多自己动手,会比你我告诉你知道的更多。
list_id=tsArray_id;
把这句改成
documentgetElementById("list_id")value
=tsArray_id;
接收页面就像你写的
id=RequestForm("list_id")
这样就可以不用改。
asp代码可以写在js函数里面,不过他不会以js函数的方式运行,
仍然还是在服务端运行的,写在js函数中只会返回asp代码的运行结果。
js/vbs代码是运行在客户端,asp代码运行在服务端,这就是区别。
不过vbs现在用的并不多了,因为只有基于IE的浏览器才能运行vbs,
现在一般都只用js。
至于如何存到数据库中,这个就不好讲了,还是自己多看看书吧。
1。先将从数据库中取出的内容,按所属字段赋值给字符串变量(字符串变量的个数等于您取出内容包含的字段数目;
2定义数组;
3。根据字符串变量的个数为循环语句设置循环条件;
4执行循环语句,为数组的每个成员赋值。
<include file="headhtml" title="数组" />
循环的时候
[foreach][/foreach]
或者 [titleX][titleXX]
1 怎么将一组数组赋值给指针,比如, a[][3]={2,4,5,6,7,8,9,10,11} p(3)
指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。
但在概念和使用上,多维数组的指针比一维数组的指针要复杂。1、二维数组的地址 二维数组可以理解为一个广义的一维数组,一个以一维数组为元素的一维数组。
例如定义一个数组:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 则数组a对应的元素为:a[0][0] a[0][1] a[0][2] a[0][3] …… 第0行 a[1][0] a[1][1] a[1][2] a[1][3] …… 第1行 a[2][0] a[2][1] a[2][2] a[2][3] …… 第2行 现在将第0行数组元素a[0][0]、a[0][1]、a[0][2]、a[0][3]组成数组a[0],第1行数组元素a[1][0]、a[1][1]、a[1][2]、a[1][3]组成数组a[1],第2行数组元素组成数组a[2],则a[0]、a[1]、a[2]就是一维数组名,代表一个地址常量,分别指向每行的第0列元素,如图 7 7和图 7 8所示。那么a[0]+1指向第0行的第1个元素,a[1]+1指向第1行的第1个元素,所以称a[0]、a[1]、a[2]为列指针,对它们的增减1将移动1列元素。
图 7 8 二维数组中元素地址示意图 对于二维数组a来说,还可以把它看成是由a[0]、a[1]、a[2]这些“元素”组成的一维数组,如图 7 8所示。而a[0]、a[1]、a[2]又是由4个int型元素组成的数组,所以a+0指向a[0]数组的首地址(第0行元素的首地址),a+1指向a[1]数组的首地址(第1行元素的首地址),那么a+i指向第i行的首地址,所以a被看成是一个行指针,指针a的基类型是一个由4个int型数据构成的数组。
由于a指向a[0],a+1指向a[1],所以a等价于a[0],(a+1)等价于a[1],(a+i)等价于a[i],行指针运算得到列指针。而a[0]+1指向第0行的第1个元素,a[1]+1指向第1行的第1个元素,那么(a[0]+1)等价于a[0][1],(a[1]+1)等价于a[1][1],(a[i]+j)等价于a[i][j],列指针运算得到二维数组的元素值。
而a[i]又等价于(a+i),所以(a[i]+j)与((a+i)+j)等价,都表示二维数组元素a[i][j]。对于二维数组a[M][N]中的任意一个元素a[i][j],其地址可以表示为:(1)&a[i][j],(2)&a[0][0]+iN+j,(3)a[i]+j等价于(a+i)+j (4)a[0]+ iN+j 对于二维数组a[M][N]中的任意一个元素a[i][j],还可以表示成(a[i]+j)、((a+i)+j)、((a+ i))[ j]、(a[0]+ iN+j)、(&a[0][0]+iN+j)等形式。
例7- 8通过数组元素的地址来引用二维数组元素。#include #include int main() { int i,j; int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; cout<<"输出二维数组a:"<
在指向行的指针前面加一个运算,就转换为指向列的指针;反之,在指向列的指针前面加一个&运算,就成为指向行的指针。(2) (a+i)和a[i]是等价的,但它们在各维数组中的含义不同:对于一维数组a,(a+i)和a[i]是一个元素;而对于二维数组a,(a+i)和a[i]则仍然是一个地址,((a+i)+j)才是元素a[i][j],((a+i+j))也是元素,但它是a[i+j][0]元素。
2、二维数组的指针 同样还可以用指针变量来访问二维数组元素。由于二维数组的地址有行地址和列地址两种,所以和地址相对应的指针也有两种,分别为行指针和列指针。
(1)二维数组的列指针 列指针是指向具体元素的指针,又称一级指针,其定义和一般变量指针的定义是一样的。在例78程序中增加一行列指针定义语句:int aPtr=a[0]; 或int aPtr=&a[0][0] 将例78程序中输出数组元素的语句cout<
直接移动指针:cout<
在定义时,必须明确指出这个指针指向的一维数组有多少个元素。用行指针来处理二维数组,则行指针所指数组的长度等于二维数组的列数。
行指针定义的一般形式如下: ( )[ ] 其中 即表示该指针指向的数组的长度。例7- 9通过行指针来引用二维数组元素。
#include int main() { int i,j; int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (p)[4]; 定义一个指向一维数组(有4个整型元素)的指针变量 p=a; cout<<"请给出输出元素的下标值:"< >i; cout<<"列标号:"; cin>>j; cout<<"a["< 列标号:2 a[1][2]=7。
2 怎么向指针数组中赋值
不可以
原因很简单
"one","two"是存在静态存储区的,这个地址中的值不能被修改。
(p[1]+1)=getchar();
运行这句,程序应该崩溃
也就是说这种声明:char p[]={"one","two"};
是不能修改其中指针指向地址中的值的,只能读取
而
char p[][5]={"one","two"};
这种声明,变量则是存在栈上的,这时就可以
(p[1]+1)=getchar();
来修改
3 数组可以赋值给指针吗
可以。
指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。 数组,是有序的元素序列。
若将有限个类型相同的变量的 命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
数组名可以代表数组的首地址,num就是num数组的首地址,pn声明为一个指针变量,它的值直接指向(points to)存在电脑存储器中另一个地方的值,也就是个地址。因此num的值是可以赋值给pn的。
扩展资料:
2数组名的书写规则应符合标识符的书写规定。 3数组名不能与其它变量名相同。
4、只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)
参考资料:
4 数组可以赋值给指针吗
可以。
指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。
数组,是有序的元素序列。若将有限个类型相同的变量的 命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
数组名可以代表数组的首地址,num就是num数组的首地址,pn声明为一个指针变量,它的值直接指向(points to)存在电脑存储器中另一个地方的值,也就是个地址。因此num的值是可以赋值给pn的。
扩展资料:
数组使用规则
1数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。
2数组名的书写规则应符合标识符的书写规定。
3数组名不能与其它变量名相同。
4、只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)
//保存文件到SQL Server数据库中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fiOpenRead();
byte[] bytes=new byte[fsLength];
fsRead(bytes,0,ConvertToInt32(fsLength));
SqlCommand cm=new SqlCommand();
cmConnection=cn;
cmCommandType=CommandTypeText;
if(cnState==0) cnOpen();
cmCommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbTypeImage);
spFileValue=bytes;
cmParametersAdd(spFile);
cmExecuteNonQuery()
//保存文件到Access数据库中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fiOpenRead();
byte[] bytes=new byte[fsLength];
fsRead(bytes,0,ConvertToInt32(fsLength));
OleDbCommand cm=new OleDbCommand();
cmConnection=cn;
cmCommandType=CommandTypeText;
if(cnState==0) cnOpen();
cmCommandText="insert into "+tableName+"("+fieldName+") values(@file)";
OleDbParameter spFile=new OleDbParameter("@file",OleDbTypeBinary);
spFileValue=bytes;
cmParametersAdd(spFile);
cmExecuteNonQuery()
代码中的fileName是文件的完整名称,tableName是要 *** 作的表名称,fieldName是要保存文件的字段名称
以上就是关于数组如何存到数据库中全部的内容,包括:数组如何存到数据库中、C#如何将一个结构体数组变量弄成全局变量、请教C#中如何读取数据库中的某一列值,并将其逐条写入一个数组。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)