栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Parallel.Foreach SQL查询有时会导致连接

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Parallel.Foreach SQL查询有时会导致连接

我将重构您的业务逻辑(连接到数据库)。

public class SqlOperation{    public SqlOperation()    {        Queries = new List<string>();    }    public string TableName { get; set; }    public string ConnectionString { get; set; }    public List<string> Queries { get; set; }}public static List<DataTable> GetAllData(IEnumerable<SqlOperation> sql){    var taskArray =        sql.SelectMany(s => s.Queries  .Select(query =>     Task.Run(() => //Task.Factory.StartNew for .NET 4.0         ExecuteQuery(s.ConnectionString, s.TableName, query)))) .ToArray();    try    {        Task.WaitAll(taskArray);    }    catch(AggregateException e)    {        MessageBox.Show(e.ToString(), "GetAllData error");    }    return taskArray.Where(t => !t.IsFaulted).Select(t => t.Result).ToList();}public static DataTable ExecuteQuery(string connectionString, string tableName, string query){    DataTable dataTable = null;    using (var connection = new SqlConnection(connectionString))    {        dataTable = new DataTable();        dataTable.TableName = tableName;        using(var command = new SqlCommand(query, connection))        { connection.Open(); using(var adapter = new SqlDataAdapter()) {     adapter.SelectCommand = command;     adapter.Fill(dataTable); }        }    }     return dataTable;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441670.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号