C# 导入数组到数据库

数组有300个数据,数据库有对应的300列,这一次导入的300个数据在数据库对应的是一行300列,请问大神,怎么把数组数据导入到表中,如果是用insert表(列1,列2,... 数组有300个数据,数据库有对应的300列,这一次导入的300个数据在数据库对应的是一行300列,请问大神,怎么把数组数据导入到表中,如果是用insert 表(列1,列2,列3......)value (a[1],a[2],a[3]......)这样的方式,那语句要写很长,执行起来也费事,容易出错。 展开
 我来答
fly夜飞纷飞
2015-01-14 · TA获得超过132个赞
知道小有建树答主
回答量:168
采纳率:85%
帮助的人:112万
展开全部

如果你这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 = ..
.
醉酒银虫
2015-01-14 · TA获得超过339个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:257万
展开全部

你这种设计表的方式只能这样了,不过你可以使用

//array是数据列表,如果数据类型不是字符串格式的
string commandText = "insert into [表名] values("+string.Join(",",array)+")";
//如果是字符串格式的
string commandText = "insert into [表名] values('"+string.Join("','",array)+"')";

 必须所有字段都有的。

更多追问追答
追问
不能用循环语句吗?你意思是insert语句必须把数组所有的字段都写出来?
追答
也可以啊,如果你不用字段名,那就得都写出来,如果写了字段名,就不用了,你可以用DataTable嘛,然后用DataAdapter更新到数据库中也行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
至爱一生sky
2015-01-14 · 超过20用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:37.4万
展开全部
如果你设置的列名有规律的话就可以用循环了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式