I have a grid view that is being populated from 1 table, code below:
#region Bind Grid Content
private void BindGridContent()
{
DataTable dtInfo = GetContent();
if (dtInfo.Rows.Count > 0)
{
uxNoticeGv.DataSource = dtInfo;
uxNoticeGv.DataBind();
uxNoticeGv.Visible = true;
uxGridMessageLbl.Visible = false;
}
else
{
uxNoticeGv.Visible = false;
uxGridMessageLbl.Visible = true;
}
uxGridViewHeader.SetGridViewHeader(uxNoticeGv, dtInfo.Rows.Count);
}
#endregion
My question: Is it possible for uxNoticeGv to have multiple datasources? I ask because as of right now one of my gridview columns is being populated with an id value and I need the description. That would entail that I create a linked server, which I don't have the permissions to do.
I can however, query and return data from the other data source. I just need to have uxNoticeGv have 2 data sources if possible.
Any ideas on how to tackle this issue.
Current SQL Connection Code
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.DataBeingTransferredDesc, ae.PurposeOrFunctionDialInDesc, ae.PhysicalLocationDesc, ");
sqlStatement.Append(" ae.PurposeOrFunctionDialOutDesc, ae.ApplicationUtilizingModemDesc, ae.PasswordChangeFrequency, ae.OtherLayerAuthenticationDesc, ");
sqlStatement.Append(" ae.MachineServerModeConnectionDesc, ae.TypeOfConnectionID, ae.CreatedDate, ct.ConnectionTypeDesc,");
sqlStatement.Append(" ae.LineNumber, ae.DetailPurposeOrFunction");
sqlStatement.Append(" From");
sqlStatement.Append(" dbo.AccountEntry ae");
sqlStatement.Append(" Join");
sqlStatement.Append(" dbo.ConnectionType ct");
sqlStatement.Append(" on ae.TypeOfConnectionID = ct.ConnectionTypeID");
sqlStatement.Append(" WHERE 1=1 ");
var sqlParams = new List<SqlParameter>();
if (lineNumber.Trim().Length > 0)
{
sqlStatement.Append(" and ae.LineNumber = @LineNumber");
sqlParams.Add(new SqlParameter() { ParameterName = "@LineNumber", SqlDbType = SqlDbType.Int, Value = lineNumber });
}
if (detailPurposeOrFunction.Trim().Length > 0)
{
sqlStatement.Append(" and ae.DetailPurposeOrFunction like @DetailPurposeOrFunction");
sqlParams.Add(new SqlParameter() { ParameterName = "@DetailPurposeOrFunction", SqlDbType = SqlDbType.VarChar, Size = 70, Value = DBDataHelper.FormatStringLike(detailPurposeOrFunction) });
}
if (connectionTypeDesc.Trim().Length > 0)
{
sqlStatement.Append(" and ct.ConnectionTypeDesc Like @ConnectionTypeDescLike");
sqlParams.Add(new SqlParameter() { ParameterName = "@ConnectionTypeDescLike", SqlDbType = SqlDbType.VarChar, Size = 50, Value = DBDataHelper.FormatStringLike(connectionTypeDesc) });
}
if (createdDateBegin != DateTime.MaxValue)
{
sqlStatement.Append(" and ae.CreatedDate >= @CreatedDateLike");
sqlParams.Add(new SqlParameter() { ParameterName = "@CreatedDateLike", SqlDbType = SqlDbType.Date, Value = createdDateBegin });
}
if (createdDateEnd != DateTime.MaxValue)
{
createdDateEnd = createdDateEnd.AddDays(1);
sqlStatement.Append(" and ae.CreatedDate < @EntryDateEnd");
sqlParams.Add(new SqlParameter() { ParameterName = "@EntryDateEnd", SqlDbType = SqlDbType.DateTime, Value = createdDateEnd});
}
if (machineServerConnection.Trim().Length > 0)
{
sqlStatement.Append(" and ae.MachineServerModeConnectionDesc Like @MachineServerModeConnectionDesc");
sqlParams.Add(new SqlParameter() { ParameterName = "@MachineServerModeConnectionDesc", SqlDbType = SqlDbType.VarChar, Size = 51, Value = DBDataHelper.FormatStringLike(machineServerConnection) });
}
var sqlCmd = new SqlCommand(sqlStatement.ToString());
sqlCmd.Parameters.AddRange(sqlParams.ToArray());
return DBAccess.SQLServer.GetDataTable(DBAccess.SQLServer.GetConnectionString("AccountDB"), sqlCmd);
}