返回语句中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代码
由于您正在加载数据表,因此更好的方法可能是保留两个单独的函数-每个数据集一个。这是与单一职责原则(SRP)保持一致的,SRP鼓励保持每个只做一项工作的小功能。
第三个函数调用这两个函数,然后使用Linq连接数据。有关数据表连接的更多信息,请参阅本文。