C# 导入数组到数据库
数组有300个数据,数据库有对应的300列,这一次导入的300个数据在数据库对应的是一行300列,请问大神,怎么把数组数据导入到表中,如果是用insert表(列1,列2,...
数组有300个数据,数据库有对应的300列,这一次导入的300个数据在数据库对应的是一行300列,请问大神,怎么把数组数据导入到表中,如果是用insert 表(列1,列2,列3......)value (a[1],a[2],a[3]......)这样的方式,那语句要写很长,执行起来也费事,容易出错。
展开
3个回答
展开全部
如果你这300列的数据类型是一个类型的即(有些数据类型需要加 ‘ ’ 比如:varchar,有些则不需要,比如:int)就可以使用下面的语句:
string str = a[0];
for(int i=1;i<a.length,i++)
{
str = str + "," + a[i];
}
string sql = "insert into tablename values("+str+")";
还有个如果就是:你的数组里已经设置好了哪些是加‘ ’,哪些没加的,也可以使用上面的。
更多追问追答
追问
数组里怎么设置加‘ ’?这些数据不是统一的类型,有些是nvchar,有些是int,有些是datetime,
追答
这可就麻烦了,能还是能做到,就是先获取你这个表的所有列的数据类型,也放到一个数组,然后用2个for循环,第一个是循环列类型,第二个就是上面的,在判断这个类型属于哪类在加‘ ’,还是不加。只不过2个for循环加上2个都是300条执行效率会相对慢。你若需要代码。这个的给我一些时间测试。先告诉我你用的是什么数据库,因为不同数据数据类型不一样,系统的一些方法和表也不一样(这里会用到)
另:你定义的数组是 ArrayList a2 = new ArrayList();还是其他定义了类型的数组,如:string[] names= ,int[] numbers = ..
.
展开全部
你这种设计表的方式只能这样了,不过你可以使用
//array是数据列表,如果数据类型不是字符串格式的
string commandText = "insert into [表名] values("+string.Join(",",array)+")";
//如果是字符串格式的
string commandText = "insert into [表名] values('"+string.Join("','",array)+"')";
必须所有字段都有的。
更多追问追答
追问
不能用循环语句吗?你意思是insert语句必须把数组所有的字段都写出来?
追答
也可以啊,如果你不用字段名,那就得都写出来,如果写了字段名,就不用了,你可以用DataTable嘛,然后用DataAdapter更新到数据库中也行。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你设置的列名有规律的话就可以用循环了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询