diff --git a/Src/Asp.Net/SqlServerTest/Demos/H_Queue.cs b/Src/Asp.Net/SqlServerTest/Demos/H_Queue.cs index b9957cc5c..039bb2465 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/H_Queue.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/H_Queue.cs @@ -30,8 +30,10 @@ namespace OrmTest.Demo db.Queryable().AddQueue(); db.Queryable().AddQueue(); - db.AddQueue("select @id", new { id = 1 }); - var result2 = db.SaveQueues(); + SqlSugar.SugarParameter p = new SqlSugar.SugarParameter("@id",1); + db.AddQueue("select @id", p); + db.AddQueue("select @id", p); + var result2 = db.SaveQueues(); diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index 78f469f1a..cbf75be74 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -788,6 +788,22 @@ namespace SqlSugar } this.Queues.Add(sql,this.Context.Ado.GetParameters(parsmeters)); } + public void AddQueue(string sql, SugarParameter parsmeter) + { + if (Queues == null) + { + Queues = new QueueList(); + } + this.Queues.Add(sql, new List() { parsmeter }); + } + public void AddQueue(string sql, List parsmeters) + { + if (Queues == null) + { + Queues = new QueueList(); + } + this.Queues.Add(sql, parsmeters); + } public QueueList Queues = new QueueList(); private T SaveQueuesProvider(bool isTran, Func, T> func) @@ -812,14 +828,17 @@ namespace SqlSugar if (item.Parameters == null) item.Parameters = new SugarParameter[] { }; var itemParsmeters = item.Parameters.OrderByDescending(it => it.ParameterName.Length).ToList(); + List addParameters = new List(); var itemSql = item.Sql; foreach (var itemParameter in itemParsmeters) { var newName = itemParameter.ParameterName + "_q_" + index; + SugarParameter parameter = new SugarParameter(newName, itemParameter.Value); + parameter.DbType = itemParameter.DbType; itemSql = itemSql.Replace(itemParameter.ParameterName, newName); - itemParameter.ParameterName = newName; + addParameters.Add(parameter); } - parsmeters.AddRange(itemParsmeters); + parsmeters.AddRange(addParameters); itemSql = itemSql.TrimEnd(';')+";"; sqlBuilder.AppendLine(itemSql); index++;