首页 新闻 搜索 专区 学院

多个集合,怎么遍历插入数据到数据库

0
悬赏园豆:10 [已解决问题] 解决于 2020-10-21 17:48

var biztypeList = BiztypeList(biztype);
for (int i = 0; i < biztypeList.Length; i++)
{
string buss = biztypeList[i];

  }

 var custfeekeyList = CustFeeKeyList(custfeekey);
  for (int i = 0; i < custfeekeyList.Length; i++)
  {
          var cusfkey = custfeekeyList[i];
   }

每个list里面都有3个数据,怎么遍历3次在数据插入数据

是依米呀的主页 是依米呀 | 菜鸟二级 | 园豆:287
提问于:2020-10-21 11:39
< >
分享
最佳答案
0

这样写肯定会只获取数组最后一个,你把实体对象定义到循环里面去。还有两个数组的长度是不是一样的?假设a数组三条数据,b数组四条数据,你需要数据库插入几条数据?

收获园豆:7
Mr·林 | 初学一级 |园豆:150 | 2020-10-21 17:21
其他回答(3)
0

如果是sqlserver数据库,使用SqlConnection,SqlCommand和事务

using(SqlConnection conn=new SqlConnection(连接字符串))
{
    conn.Open();
    var transaction = conn.BeginTransaction();

    for()//循环逻辑,使用你的业务代码
    {
       string sql="";

       SqlCommand cmd= conn.CreateCommand();
       cmd.CommandType = CommandType.Text;
       cmd.CommandText = sql;
       cmd.ExecuteNonQuery();
    }

    transaction.Commit();
}

也可以构建这样的sql,一次批量提交:insert into 表名(列名1,列名2) values(值1,值2),(值3,值4)

另外如果数据量很大也可以使用SqlBulkCopy类批量提交

总之,要使用一个数据库连接,不要每次循环都打开和关闭连接

收获园豆:3
E行者 | 园豆:1751 (小虾三级) | 2020-10-21 12:50
0

用反射+拼Sql

jqw2009 | 园豆:2392 (老鸟四级) | 2020-10-21 13:24
0

批量插入数据

明天夏天找回腹肌 | 园豆:775 (小虾三级) | 2020-10-21 13:50

能不能具体点,有没有代码

支持(0) 反对(0) 是依米呀 | 园豆:287 (菜鸟二级) | 2020-10-21 14:04

@Yimi依米: 用这个就行SqlBulkCopy
你看看他的https://www.cnblogs.com/guxingy/p/9629078.html

支持(0) 反对(0) 明天夏天找回腹肌 | 园豆:775 (小虾三级) | 2020-10-21 14:14

@竜咚咚: 跟我需要的不一样

支持(0) 反对(0) 是依米呀 | 园豆:287 (菜鸟二级) | 2020-10-21 14:16

@Yimi依米: 你不就是想把你list中的数据插到库中吗

支持(0) 反对(0) 明天夏天找回腹肌 | 园豆:775 (小虾三级) | 2020-10-21 14:26

@竜咚咚: 嗯嗯。有两个集合,每一次插需要获取两个集合的各一个值
怎么破?

支持(0) 反对(0) 是依米呀 | 园豆:287 (菜鸟二级) | 2020-10-21 14:33


我这样写,只能取到最后一次遍历的值。
我想每一次都能取得集合1和集合2的对应值

支持(1) 反对(0) 是依米呀 | 园豆:287 (菜鸟二级) | 2020-10-21 14:38

@Yimi依米: 你这样肯定是最后的值了

支持(0) 反对(0) 明天夏天找回腹肌 | 园豆:775 (小虾三级) | 2020-10-21 14:43

@竜咚咚: 对呀,所以我就想知道应该怎么写

支持(0) 反对(0) 是依米呀 | 园豆:287 (菜鸟二级) | 2020-10-21 15:04

@Yimi依米: var businesstypelist = "";
var biz = 0;
var Customer = 0;
var custfeekey = "";
for (int i = 0; i < businesstypelist.Length; i++)
{
biz = Convert.ToInt32(businesstypelist[i]);
Customer =Convert.ToInt32( custfeekey[i]);
//这里可以循环映射成 DataTable
}
//这里用SqlBulkCopy 直接批量插入到表中

支持(0) 反对(0) 明天夏天找回腹肌 | 园豆:775 (小虾三级) | 2020-10-21 15:13

@Yimi依米: 最好把业务背景和表结构描述一下,代码中的实体类与表的对应关系是怎样的,因为别人无法根据代码片段准确推测出业务逻辑

支持(0) 反对(0) E行者 | 园豆:1751 (小虾三级) | 2020-10-21 15:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册