C# 批量导入数据,速度太慢
求助:读取excel,然后把excel中没有的列在代码中添加进去,最后把生成的新数据插入到数据库。excel格式:我要生成的新表格式:就是要在代码中遍历第一张表,不同的数...
求助: 读取excel,然后把excel中没有的列在代码中添加进去,最后把生成的新数据插入到数据库。
excel格式:
我要生成的新表格式:
就是要在代码中遍历第一张表,不同的数据赋给不同的类型值,这样生成新表;
但是因为数据量太大,所以这个过程很慢,有没有大神帮我改进一下,如何实现这部分,速度才可以变快?
注意:类型值是根据名称来确定的,因为数据量太大,所以不想再excel中手动添加。 展开
excel格式:
我要生成的新表格式:
就是要在代码中遍历第一张表,不同的数据赋给不同的类型值,这样生成新表;
但是因为数据量太大,所以这个过程很慢,有没有大神帮我改进一下,如何实现这部分,速度才可以变快?
注意:类型值是根据名称来确定的,因为数据量太大,所以不想再excel中手动添加。 展开
展开全部
不同数据给不同类型?
#首先问下,数据量大的表有没做素引?用实体还是存储过程?
#其次,循环是怎么写的
#类型值是根据名称来确定的,是根据新表还是旧表?(dt["name"]?)
能把代码发来看看?
#首先问下,数据量大的表有没做素引?用实体还是存储过程?
#其次,循环是怎么写的
#类型值是根据名称来确定的,是根据新表还是旧表?(dt["name"]?)
能把代码发来看看?
追问
首先,需要循环第一张表,for(int i=0;i<dt.rows.count;i++)
{
if(dt["名称"] =="某值")
{
类型=“某值值”;
}
}
就是这样,给每条数据都赋值一个类型。 if(dt["名称"] =="某值")中的dt["名称"]是第一张表中的。 就是把第一张表给类型后生产第二张表。
追答
# 用Foreach替换成For,既然你数据量大多,用foreach会更有效率(项少,反之,但是如果为了统一风格,你喜欢)。
# 如果分支很多,使用Switch(据了解,判断多使用switch更快,实际效率没测试过)
foreach(DataRow dr in dt)
{
switch(dr["ColumnName"])
{
case "..." : ……;break
default ……
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询