在 C# 中的 SQL Server 上合并选择

Posted

技术标签:

【中文标题】在 C# 中的 SQL Server 上合并选择【英文标题】:Merge select on SQL Server in C# 【发布时间】:2016-09-03 21:08:55 【问题描述】:

有什么方法可以合并 2 选择,这两个选择都返回单独的数据列表

我只想连接数据库一次

第一个查询:

string strQuery1=
    string.Format("SELECT distinct top 10   Title,  Id FROM Table1");
IQueryable<MyCompanyDto> list =
                    _entities.Database.SqlQuery<MyCompanyDto>(strQuery1).AsQueryable();

第二次查询:

string strQuery2=
        string.Format("SELECT   ProductName,  CountryID FROM Table2");
    IQueryable<MyProductDto> list =
                        _entities.Database.SqlQuery<MyProductDto>(strQuery2).AsQueryable();

【问题讨论】:

***.com/questions/12715620/… @EvgeniDimitrov 谢谢,我检查了 【参考方案1】:

两个查询都可以连接一次,但你必须创建两个DbCommand

string strQuery1= string.Format("SELECT distinct top 10   Title,  Id FROM Table1");
string strQuery2= string.Format("SELECT   ProductName,  CountryID FROM Table2");

DataTable dataTable1 =  new DataTable();
DataTable dataTable2 =  new DataTable();

using (SqlConnection conn =  new SqlConnection(<connection_string>))

    conn.Open();

    using(DbCommand command = conn.CreateCommand())
    
       command.Connection = conn;
       command.CommandText = strQuery1;

       using (var reader = dbCommand.ExecuteReader())
        
          dataTable1.Load(reader);
       
    
    using(DbCommand command = conn.CreateCommand())
    
       command.Connection = conn;
       command.CommandText = strQuery2;

       using (var reader = dbCommand.ExecuteReader())
        
          dataTable2.Load(reader);
       
    
 

【讨论】:

以上是关于在 C# 中的 SQL Server 上合并选择的主要内容,如果未能解决你的问题,请参考以下文章

如何在合并数据集之前检查行是不是存在(SQL Server)

SQL Server UNION ALL 合并连接(连接)太慢

使用 C# 在 ASP.NET 中检查 SQL Server 表中的列值是不是为空

SQL Server消息输出上的C#句柄[重复]

在 SQL Server 中合并查询中的行

sql server 语句如何将3个表合并成一个表?