阿里云 AnalyticDB MySQL 数据库,批量插入问题 返回
SqlSugar
沟通中
2
334
悬赏:0 飞吻
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Linq;
using System.Reflection;
using SqlSugar;
namespace OrmTest
{
class Program
{
static void Main(string[] args)
{
var db = new SqlSugarClient(new SqlSugar.ConnectionConfig()
{
ConnectionString = "Server=1111111111111111111111.ads.aliyuncs.com;Port=3306;Database=DB1111111;Uid=aliyun_db_user;Pwd=aliyun_user_pwd",
DbType = SqlSugar.DbType.MySql,
IsAutoCloseConnection = true
});
//建表
db.CodeFirst.InitTables<Test001>();
//清空表
db.DbMaintenance.TruncateTable<Test001>();
List<Test001> list = new List<Test001>();
list.Add(new Test001 { id=SnowFlakeSingle.instance.NextId(),city="城市1" });
list.Add(new Test001 { id = SnowFlakeSingle.instance.NextId(), city = "城市2" });
//插入测试数据
var result =db.Insertable(list).ExecuteCommand();//用例代码
Console.WriteLine(result);
Console.WriteLine("用例跑完");
Console.ReadKey();
}
//建类
public class Test001
{
[SugarColumn(IsPrimaryKey = true)]
[Required]
public long id { get; set; }
public string city { get; set; }
}
}
}执行到这句的时候就报错。
var result =db.Insertable(list).ExecuteCommand();//用例代码
报错如下图所示:

使用的阿里云 AnalyticDB MySQL 数据库。
热忱回答(2)
-
fate sta VIP0
2026/6/16出现原因:一些特殊服务器环境或者魔改的MySql
原理: 用Ado.net模拟错误
varconn=newMySqlConnection(字符串);conn.Open();conn.Close();//同一个连接第二次Open就会出来,出现这种情况 Pooling=false 会close后清空这个连接池,//所以在次Open就不会有影响了conn.Open();方案1:字符串上加 Pooling=false (自动释放模式)
方案2: using(var db=new sqlsugarclient(手动释放模式)){ 。。 } 保证同一个db只会close一次
0 回复 -
~~ VIP0
2026/6/16var result = db.Insertable(list).UseParameter().ExecuteCommand();
加上UseParameter()方法就解决了
0 回复