C#向sql数据库写数据,数据表中有100行,但是我只需向前50行写数据,怎么实现呢,用Insert into login values写的话,提示“列名或所提供值的数目与表定义不匹配。”,求解决方法!
------解决思路----------------------
不好意思,没输完:
如果是有100个列,向前50个列插入数据,可以类型这样:
INSERT INTO TABLENAME(Field1, Field2.....) VALUES(value1, value2...)
只要把你要插入数据的字段写出来就可以了。
------解决思路----------------------
先说一声,数据库的基本单位是一个元组(即一条记录),而元组本身是无序的。所以不存在前50行,后50行这东西,因为这样的操作并没有什么意义。
在SELECT查询时,指定order by排序方式(或者使用默认排序方式),那样才是有序。
建议你:
创建一个对象,给需要的属性赋值,其他属性默认,然后保存整个对象到数据库。
insert语句提供50个字段,反正我看晕了~说不定下周要改成80个呢~
------解决思路----------------------
行还是列表示傻傻的分不清楚。
1.如果是数据存在100行,那么我想你应该是需要更新数据的,需要用update操作,根据主键
2.如果是100列,插入一行记录,那就自己拼接sql语句,insert into table(column1,column2,....) values(value1,value2,...)
------解决思路----------------------
假如表有100个字段,那
insert(field1,field1,...,field100) values("1","2',..."50","",...,"")
必须有100个字段,而没有值得字段可以赋值为空。不能只有50个字段。
我觉得你还是改一下,创建一个对象,然后调用object.save();方法吧。在save方法中调用insert语句,对全部字段进行一次赋值。即上面的insert语句。
------解决思路----------------------
楼主这个自己都没有表达清楚:
1、如果楼主是按一个“表”的数据行,来更新另一个表的前“50”行的话
答:需要两个表之前必须有一个对应字段来进行更新,语句则是
for(int i=0,i<50,i++)
{
Update 表1 set 表1.字段=表2.字段 from 表1 left join 表2 on 表2.对应字段=表1.对应字段
}
2、如果楼主是想一个表的50行数据插入到另一个表中,语句是:
for(int i=0,i<50,i++)
{
insert(field1,.....) values("1",.....)
}
3、如果是插入的数据行“列名或所提供值的数目与表定义不匹“
这是数据例不对,或数据类型不对。
把需要插入的值类型都改成"varchar"?
4、如果是一个表中的数据“列”,插入到另一个表的“行”
那个在插入的时候转化为DataRow进行每一行取值,进行insert