返回语句中2个sql连接的语法

本文关键字:连接 语法 sql 2个 语句 返回 | 更新日期: 2023-09-27 18:07:05

我有一个正在从一个连接表填充的网格视图。下列代码:

    private void BindGridContent()
    {
        DataTable dtInfo = GetContent();
        if (dtInfo.Rows.Count > 0)
        {
            // Bind Data
            uxNoticeGv.DataSource = dtInfo;
            uxNoticeGv.DataBind();
            // Show GridView
            uxNoticeGv.Visible = true;
            // Hide Grid Message
            uxGridMessageLbl.Visible = false;
        }
        else
        {
            // Hide GridView
            uxNoticeGv.Visible = false;
            // Display Grid Message
            uxGridMessageLbl.Visible = true;
        }
        uxGridViewHeader.SetGridViewHeader(uxNoticeGv, dtInfo.Rows.Count);
    }

我遇到的问题是当前表没有对我在gridview中返回的一些字段的描述。而是显示ID值。我也不能加入表,除非我创建一个链接服务器,我没有权限这样做。(链接服务器的答案被排除)

下面是我的数据访问类(层返回我的当前表):

public static DataTable ViewLogSearch(string lineNumber, DateTime createdDateBegin, string detailPurposeOrFunction, string connectionTypeDesc, DateTime createdDateEnd, string machineServerConnection)
       {
           var sqlStatement = new StringBuilder();

       sqlStatement.Append(" SELECT");
       sqlStatement.Append("   ae.AccountEntryID, ae.LastUpdatedBy, ae.PurposeOrFunctionDialInDesc, ae.PhysicalLocationDesc, ");
       sqlStatement.Append("   ae.PurposeOrFunctionDialOutDesc, ae.PasswordChangeFrequency, ae.OtherLayerAuthenticationDesc, ");
       sqlStatement.Append("   ae.TypeOfConnectionID, ae.CreatedDate, ct.ConnectionTypeDesc,");
       sqlStatement.Append("   ae.LineNumber, ae.DetailPurposeOrFunction");
       sqlStatement.Append(" From");
       sqlStatement.Append("   dbo.AccountEntry ae");
       //Added After
       sqlStatement.Append(" Join");
       sqlStatement.Append("   dbo.ConnectionType ct");
       sqlStatement.Append(" on ae.TypeOfConnectionID = ct.ConnectionTypeID");
       sqlStatement.Append(" WHERE 1=1 ");
       // SQL parameter collection
      var sqlParams = new List<SqlParameter>();
       // Commented out excess logic but I am passing parameters         
       // Create sql command
       var sqlCmd = new SqlCommand(sqlStatement.ToString());
       // Add sql parameters to sql command
       sqlCmd.Parameters.AddRange(sqlParams.ToArray());
       // Execute sql
       return DBAccess.SQLServer.GetDataTable(DBAccess.SQLServer.GetConnectionString("AccountDB"), sqlCmd);
   }

我可以查询其他数据库。我想的是,我将查询另一个数据库并返回我感兴趣的字段。这就需要我有两个连接字符串。

关于如何为1个方法创建2个连接字符串的任何想法?请注意,加入的桌子不是我感兴趣的桌子。我对解决这个问题的其他方法持开放态度。请提供psuedo代码

返回语句中2个sql连接的语法

由于您正在加载数据表,因此更好的方法可能是保留两个单独的函数-每个数据集一个。这是与单一职责原则(SRP)保持一致的,SRP鼓励保持每个只做一项工作的小功能。

第三个函数调用这两个函数,然后使用Linq连接数据。有关数据表连接的更多信息,请参阅本文。